locked
BindingList cross thread invoked call confusion RRS feed

  • คำถาม

  • I'm using this method to check and invoke a BindingList which is attached to a listbox.

            public void ClientListClear()
            {
                if (ToolMessenger.Instance.listBoxClients.InvokeRequired)
                {
                    ToolMessenger.Instance.Invoke((Action)(() => clientList.Clear()));
                }
                else
                {
                    clientList.Clear();
                }
            }

    From a thread I'm calling

    ClientListClear()

    However it's still throwing an exception tellin g me I'm trying to make a cross thread call to the listbox when clearly I'm not. This has baffled me beyond beliefe, I use this type of invoking all the time without issues, any ideas whats going on?

    4 ตุลาคม 2555 23:43

คำตอบ

  • "However it's still throwing an exception tellin g me I'm trying to make a cross thread call to the listbox when clearly I'm not."

    Your listbox is bound to your bindinglist.  Any change to the bindinglist tries to change the listbox on the same thread.  Unbind the listbox, update the bindinglist and when finished, rebind the listbox.

    • เสนอเป็นคำตอบโดย Bob Shen 9 ตุลาคม 2555 8:31
    • ทำเครื่องหมายเป็นคำตอบโดย Bob Shen 16 ตุลาคม 2555 9:05
    5 ตุลาคม 2555 1:48

ตอบทั้งหมด