2011-07-31 9 views
7

メソッド呼び出し、control.invokeとは何ですか?何が呼び出されていますか?

プログラミングで一般的に呼び出している何

例:

MethodInvoker getValues = new MethodInvoker(delegate() 
{ 
    checkbox1Checked = checkbox1.Checked; 
    textBox6Text = textBox6.Text; 
    textBox7Text = textBox7.Text; 
    textBox3Text = textBox3.Text; 
    textBox1Text = textBox1.Text; 
    textBox4Text = textBox4.Text; 
    richTextBox1Text = richTextBox1.Text; 
    textBox5Text = textBox5.Text; 
}); 

if (this.InvokeRequired) 
{ 
    this.Invoke(getValues); 
} 
else 
{ 
    getValues(); 
} 

そして私はまたたくはMethodInvokerとInvokeRequiredが何を意味知っていますか?

+0

非常に良い答えはhttp://stackoverflow.com/questions/14703698/c-invokedelegate – Hlina

答えて

11

「呼び出し」は、メソッドを呼び出すことを指します。

winforms Control.Invokeは、UIスレッドでメソッドを呼び出すために使用されます。UIを別のスレッドから更新すると例外が発生する可能性があります。

そしてそうInvokeRequires戻りtrue場合、それはあなたがUIスレッドで実行されていないと、右のスレッドで呼び出しを実行するためにControl.Invokeを使用しなければならないことを意味します。

+0

また、非同期バージョンを使用することもできます - 'BeginInvoke' – Poma

関連する問題