以下情景: 我有一个带有一些GUI元素的类(winforms)。这个类有一个更新方法,可以改变控件上的内容。 我还有一个FileSystemWatcher。每当文件更改时,此对象都会给我一个回调。在这种情况下,我调用更新方法。
正如您可能猜到的,这会导致应用程序崩溃。原因是:FileSystemWatcher的回调是在另一个创建控件的线程中。如果我然后调用更新方法,则无法访问控件。
解决这个问题的方法是什么?谢谢!
答案 0 :(得分:1)
您应该致电Control.Invoke
或BeginInvoke
,请参阅深入参考Here
答案 1 :(得分:0)
最高投票回答这个问题看起来好像可以解决这个问题:
C# Windows Forms Application - Updating GUI from another thread AND class?