Why am I getting this error:“Cross-thread operation not valid: Control lbFolders accessed from a thread other than the thread it was created on.”?

后端 未结 7 1979
刺人心
刺人心 2020-11-29 12:49

This is baffling me, maybe somebody can shine the light of education on my ignorance. This is in a C# windows app. I am accessing the contents of a listbox from a thread.

7条回答
  •  爱一瞬间的悲伤
    2020-11-29 13:20

    You can't access GUI elements from a separate thread. Use a delegate to make the change.

    eg.

    lblStatus.Invoke((Action)(() => lblStatus.Text = counter.ToString()));
    

    or older skool:

    lblTest.Invoke((MethodInvoker)(delegate() 
    { 
      lblTest.Text = i.ToString(); 
    }));
    

    I've got a blog post on how to do this in all the .Net releases here.

提交回复
热议问题