线程间如何访问控件方法?
我有一个主窗口,上面有一个按钮,这个按钮要加载A窗口,而A窗口由于业务需要,放了大量的图片和第三方控件,导致加载时很慢,为避免用户以为窗体卡死,我开启了一个新线程,在这个线程里加载B窗口,用于显示一个动画,提示用户正在加载窗体A。现在的问题是,如何在加载完窗体A后,让B窗口关闭?我试过如下代码,但会提示“窗口不是该线程创建,不能访问”。网上搜了一下,都说的是用委托来安全访问线程控件,但看得不太明白,能根据我的代码给点提示么?多谢!
VMS.frm.system.floading floading = new frm.system.floading();
Task task = new Task(() =>
{
floading.ShowDialog();
});
task.Start();
frm.vmsMGT.fCheckIn fCheckIn = new frm.vmsMGT.fCheckIn();
this.createTab(fCheckIn);
floading.Close();
...全文
相关推荐
vbnet线程入门详解_跨线程调用窗体控件[收集].pdf
vbnet线程入门详解_跨线程调用窗体控件[收集].pdf
“线程间操作无效: 从不是创建控件“…”的线程访问它”的解决办法
文档中讲解了C#中在使用多线程,跨线程操作时报错“线程间操作无效: 从不是创建控件“…”的线程访问它”的解决办法。
从不是创建控件“textBox1”的线程访问它.zip
解决办法:线程间操作无效: 从不是创建控件“textBox1”的线程访问它(未处理System.InvalidOperationException)(委托)
WinForm(C#)中跨线程访问控件的解决方法
WinForm(C#)中跨线程访问控件的解决方法 由于多线程可能导致对控件访问的不一致,导致出现问题。C#中默认是要线程安全的,即在访问控件时需要首先判断是否跨线程,如果是跨线程的直接访问,在运行时会抛出异常。 解决办法有两个: 1、不进行线程安全的检查 2、通过委托的方式,在控件的线程上执行
用户控件与父页面及相互间方法调用和属性访问
用户控件开发中的实用技术,实现控件与父页面及相互间方法调用和属性访问


