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 1990
刺人心
刺人心 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:26

    You're trying to write to a control from a thread other than the main thread. Use Invoke or BeginInvoke.

    void SetMax()
    {
        if (prgAll.InvokeRequired)
        {
            prgAll.BeginInvoke(new MethodInvoker(SetMax));
            return;
        }
    
        prgAll.Maximum = lbFolders.SelectedItems.Count;
    }
    

提交回复
热议问题