Cross-thread Winforms control editing [duplicate]

2019-01-06 22:06发布

问题:

This question already has an answer here:

  • Cross-thread operation not valid: Control accessed from a thread other than the thread it was created on 20 answers

how can I edit the text in a windows form element if the code that is editing the text 'belongs' to a seperate thread from the one that contains the windows form? I get the exception:

Cross-thread operation not valid: Control 'textBox1' accessed from a thread other than the thread it was created on.

Thank you.

回答1:

You will need to use Control.Invoke method like this:

textbox1.Invoke((MethodInvoker)(() =>
   {
     textbox1.Text="some text";
   }));

Check this article too: Threading in UIs