在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke
2010-04-24 10:13
447 查看
在Window窗体程序开发的时候,如果使用多线程编程,在子线程中访问主线程窗体内的控件,就需要使用控件的Control.Invoke方法或者BeginInvoke方法。但是有时候因为Window执行速度太快,尤其是你写代码的时候在InitializeComponent();完成之前起了一个线程去执行某些操作,涉及到窗体控件的,当你在调用
Control.Invoke的时候,就可能出现 “在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke”错误。
解决的办法就是让线程等待,直到窗口句柄创建完毕:
//防止在窗口句柄初始化之前就走到下面的代码
while (!this.IsHandleCreated)
{
;
}
this.Invoke(new MethodWithoutParameter(LoadContactTemplate));
Control.Invoke的时候,就可能出现 “在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke”错误。
解决的办法就是让线程等待,直到窗口句柄创建完毕:
//防止在窗口句柄初始化之前就走到下面的代码
while (!this.IsHandleCreated)
{
;
}
this.Invoke(new MethodWithoutParameter(LoadContactTemplate));
相关文章推荐
- 在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke
- TCP Socket 在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke
- 安装SQL Server出现在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke的错误解决办法
- 在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke
- 在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke 转
- MSSQL Server 2008安装失败: 在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke。
- 安装SQL Server出现在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke的错误解决办法
- 安装SQL Server时出现在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke的错误解决办法
- 在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke
- "在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke"
- 在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke。
- "在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke"
- "在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke"
- C# 在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke错误的解决办法
- 在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke。
- MSSQL2008 在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke
- C# 在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke [问题点数:40分
- 在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke。
- 在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke。
- 安装SQL Server出现在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke的错误解决办法