我在 Windows 表单上有一个按钮,调用 RunWorkerAsync() 方法,该方法执行一个操作,然后更新同一表单上的 ListBox。
在 DoWork 事件完成后,我为事件分配 Result(即列表),我处理 RunWorkerCompleted() 事件,然后执行以下代码来更新我的 Listbox: listBoxServers.Items.AddRange((List)e.Result);
这时候运行应用程序并按下刷新按钮,会出现以下异常:
System.InvalidOperationException:“从不是创建控件 listBoxServers 的线程访问它。”
如何解决这个问题呢?
编辑:在 DoWork 方法中出现了以下语句而导致的异常: listBoxServers.Items.Clear();
要保持列表最新,需要清除它的内容。
在 DoWork 事件完成后,我为事件分配 Result(即列表),我处理 RunWorkerCompleted() 事件,然后执行以下代码来更新我的 Listbox: listBoxServers.Items.AddRange((List)e.Result);
这时候运行应用程序并按下刷新按钮,会出现以下异常:
System.InvalidOperationException:“从不是创建控件 listBoxServers 的线程访问它。”
如何解决这个问题呢?
编辑:在 DoWork 方法中出现了以下语句而导致的异常: listBoxServers.Items.Clear();
要保持列表最新,需要清除它的内容。