线程间操作无效: 从不是创建控件(对 Windows 窗体控件进行线程安全调用)
来源:互联网 发布:淘宝企业店铺认证流程 编辑:程序博客网 时间:2024/05/17 02:25
对 Windows 窗体控件进行线程安全调用
查询控件的 InvokeRequired 属性。
如果 InvokeRequired 返回 true,则使用实际调用控件的委托来调用 Invoke。
如果 InvokeRequired 返回 false,则直接调用控件。
**********************************************************************************
一个WinFrom界面上一个ListBox控件,通过线程来对该控件进行操作。
private void button13_Click(object sender, EventArgs e)
{
ThreadWithData tws = new ThreadWithData(this.listBox5);
Thread t = new Thread(new ThreadStart(tws.ThreadProc));
t.Start();
}
下面是ThreadWithData类
public class ThreadWithData
{
ListBox liBx;
public ThreadWithData(ListBox LBX)
{
liBx = LBX;
}
delegate void SetListBoxCallback(); //定义委托
public void ThreadProc()
{
Thread.Sleep(5000);
if (liBx.InvokeRequired)//控件是否跨线程?如果是,则执行括号里代码
{
SetListBoxCallback setListCallback = new SetListBoxCallback(ThreadProc); //实例化委托对象
liBx.Invoke(setListCallback); //重新调用SetListBox函数
}
else //否则,即是本线程的控件,控件直接操作
{
liBx.Items.Add("线程调用");
}
}
- 线程间操作无效: 从不是创建控件(对 Windows 窗体控件进行线程安全调用)
- 线程间操作无效: 从不是创建控件...的解决办法
- C#子线程创建新窗体心得(对Windows窗体控件进行线程安全调用)
- 线程间操作无效,从不是创建控件的线程访问控件的解决方案
- 对 Windows 窗体控件进行线程安全调用
- 对 Windows 窗体控件进行线程安全调用
- 对 Windows 窗体控件进行线程安全调用
- 如何:对 Windows 窗体控件进行线程安全调用
- 如何:对 Windows 窗体控件进行线程安全调用
- 对 Windows 窗体控件进行线程安全调用
- 如何:对 Windows 窗体控件进行线程安全调用
- 对 Windows 窗体控件进行线程安全调用的方法
- 对 Windows 窗体控件进行线程安全调用
- 如何:对 Windows 窗体控件进行线程安全调用
- 对 Windows 窗体控件进行线程安全调用
- C# 对 Windows 窗体控件进行线程安全调用
- 如何:对 Windows 窗体控件进行线程安全调用
- 如何:对 Windows 窗体控件进行线程安全调用
- 素数筛选
- 套接字中一些最好记住的代码模块
- 苹果在华一天收入可抵与唯冠6000万美元
- 解决项目本身lib和tomcatlib
- linx complete
- 线程间操作无效: 从不是创建控件(对 Windows 窗体控件进行线程安全调用)
- mips和mipsel的区别
- GTP协议循序渐进(三)----通过实例了解TEID
- java中线程的合成与分开
- php shtmlspecialchars 函数 详解
- cocos2d-x+lua开发,如何重载scene的事件
- Android系统服务-WindowManager
- 用css3实现Social Media Buttons
- 关闭浏览器后session不失效 in servlet.