C#中,线程如何访问主窗体句柄,急

diandian0122 2010-11-17 11:57:26
在主窗体load事件中定义
frmMain = this;
DealProc = new thread(new threadstart(DealRun));

在DealRun中
public void DealRun()
{
byte a1 = 0xff;
while(bThreadRun == true)
{
WaitOne(wh);
SetCtrlConfig(ref a1,frmMain.Handle)
}
}
出错,frmMain.Handle(主窗体句柄)从不是创建它的线程访问,请问在线程DealRun中,SetCtrlConfig(ref a1,frmMain.Handle)中的frmMain.Handle该怎样获得并传进去
...全文
242 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
龍月 2010-11-17
  • 打赏
  • 举报
回复
 this.Invoke(new MethodInvoker(delegate
{
SetCtrlConfig(ref a1,frmMain.Handle)


}));
diandian0122 2010-11-17
  • 打赏
  • 举报
回复
感谢龙月!
anshien 2010-11-17
  • 打赏
  • 举报
回复
.NET下控件的线程安全控制是在子线程中通过Control的InvokeRequired属性来判断,然后通过Invoke来启动修改控件的方法(使用delegate)去操作控件。

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧