私はスタックオーバーフローを検索して、スレッドからUIスレッドにデータをマーシャリングする方法を探していましたが、3.5でそれを行うさまざまな方法を見つけました。
私にとってよりエレガントなソリューションの1つ。私はまだラムダとクロージャを学んでいますが、このソリューションはControl.Invokeと入力パラメーターです。
コードを完全には理解していませんが、使用方法は理解しており、問題を完全に解決することはできません。
invokeを呼び出して、文字列を別のメソッド(DisplayStatusUpdate(msg))に渡したいと思います。任意のポインタをいただければ幸いです。
private void FireEventAppender_OnMessageLogged(object sender, MessageLoggedEventArgs e)
{
DisplayStatusUpdate(e.LoggingEvent.RenderedMessage);
}
private void DisplayStatusUpdate(string text)
{
_StatusTextBox.Text = _StatusTextBox.Text + text;
_StatusTextBox.Text = String.Format("{0}\r\n", _StatusTextBox.Text);
_StatusTextBox.SelectionStart = _StatusTextBox.Text.Length - 1;
_StatusTextBox.ScrollToCaret();
}