我有一个程序在一个方法中处理图像文件,这个循环在一个线程中运行,而GUI运行另一个线程。在处理过程中,我想从处理完成的方法向GUI报告进度。
这就是我所拥有的。具有GUI事件的基本Windows窗体类,由其他Windows窗体类继承。 Plus Base类,包含其他类继承的方法和属性。其他类表示我迁移到我的应用程序中的不同图像管理应用程序的图像格式。所以我只需从下拉菜单中选择另一个应用程序名称,然后打开相应的GUI,允许我选择图像源。
该方法包含一个属性,每次循环传递时都会为其分配一个新值,我想获取该值并在每次循环传递并在其上更改时将其显示在GUI上。
我尝试使用某种解决方案但是没有创建异常Window Handle。 How to update the GUI from another thread in C#?
string newText = "abc";
this.Invoke((MethodInvoker)delegate {
someLabel.Text = newText;
});
另外,我试过这个,但InvokeRequired属性返回FALSE值
http://www.codeproject.com/Articles/52752/Updating-Your-Form-from-Another-Thread-without-Cre