what is invoking?

2020-08-10 07:33发布

问题:

What is method invoke, control.invoke?

What is invoking in general in programming

examples :

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();
}

And I also wanna know what does MethodInvoker and InvokeRequired mean?

回答1:

“Invoking” refers to calling a method.

In winforms Control.Invoke is used to call a method on the UI thread — without it you can cause an exception by updating the UI from another thread.

And so if InvokeRequires returns true it means that you are not running in the UI thread and should use Control.Invoke to run the call in the right thread.