|
Invoke するってことはワーカスレッドと UI スレッドの間での行き来が発生するってこと。
あまり頻繁に使うと性能低下するかもしれない。
俺 C# でないと書けないから以下 C# のサンプル (わざと TextBox にしてみたり)
Invoke の返却値は System.Object だからキャストが必要で
private void backgroundworker1_DoWork(object sender, DoWorkEventArgs e)
{
for (int i=0; i<10; ++i)
{
System.Threading.Thread.Sleep(500);
System.String got_text = Invoke( (Func<TextBox, System.String>)((TextBox textbox) => { return textbox.Text; }), textBox1) as System.String;
System.Diagnostics.Debug.WriteLine(got_text);
}
}
ピュア疑問:こんなときは .NET Framework 4.5 の async/wait のほうがよいのだろうか?
|