私はC#を初めて使っています。私はbegininvokeやeventhandlerのようなスレッドについて読んでいます。次のコードがrichtextboxで何をしているのか説明できますか?richtextの意味box.invoke
private void Log(LogMsgType msgtype, string msg)
{
rtfTerminal.Invoke(new EventHandler(delegate
{
rtfTerminal.SelectedText = string.Empty;
rtfTerminal.SelectionFont = new Font(rtfTerminal.SelectionFont, FontStyle.Bold);
rtfTerminal.SelectionColor = LogMsgTypeColor[(int)msgtype];
rtfTerminal.AppendText(msg);
rtfTerminal.ScrollToCaret();
}));
}
*これはbegininvokeと同じですか? *はmsdnで、次のように記述します。コントロールの基になるウィンドウハンドルを所有するスレッドで、指定されたデリゲートを実行します。
Logメソッドがフォームと異なるスレッドにあります。それで、寛解を経て、それはGUIコントロールに到達しようとしています。あなたは見直しを読むべきです。 Reflexionは、メソッドが直接「認識」していないものに到達しようとしています。 – Mathieu