报“线程间操作无效: 从不是创建控件的线程访问它”用代理不行

chaojie_tan 2011-11-04 11:43:24
如代码:
..............
ExportThread = new Thread(new ThreadStart(delegateMethod));
ExportThread.Start();
}






public void delegateMethod()
{
gate = new invokeDelegate(ExportMethod);
this.Invoke(gate);
}

我已经通过代理委托来invoke了,以上方法网上很多都说这样用,“线程间操作无效: 从不是创建控件的线程访问它”这个错误是不报了,但是感觉控件还是用主线程的,窗体还是会假死,问题根本没有解决,有没有高手指点一下呀!
...全文
96 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
一个老程序袁 2012-04-25
  • 打赏
  • 举报
回复
非常感谢1楼,解决了!
mabaolin 2011-11-04
  • 打赏
  • 举报
回复
我一直这么用:

/// <summary>
/// Display log in console.
/// </summary>
private void DisplayLog(string log, Color color)
{
this.displayListView.BeginInvoke((EventHandler)(delegate
{
System.Windows.Forms.ListViewItem lvi = this.displayListView.Items.Add(log);
lvi.ForeColor = color;
lvi.EnsureVisible();
}));
}
chaojie_tan 2011-11-04
  • 打赏
  • 举报
回复
用BackgroundWorker控件的话,也一样会报“线程间操作无效: 从不是创建控件的线程访问它”
chaojie_tan 2011-11-04
  • 打赏
  • 举报
回复
假如像1楼的朋友你这样的话,很容易出问题
gxmark 2011-11-04
  • 打赏
  • 举报
回复
推荐使用BackgroundWorker控件
天二天 2011-11-04
  • 打赏
  • 举报
回复
// <summary>
/// form主方法
/// </summary>
private void MainForm_Load(object sender, EventArgs e)
{
Control.CheckForIllegalCrossThreadCalls = false;
}
加载窗口时。
Talsha 2011-11-04
  • 打赏
  • 举报
回复
this.Invoke(new MethodInvoker(delegate()
{
//do something
}));
lsl48540578 2011-11-04
  • 打赏
  • 举报
回复
http://blog.csdn.net/wksnm0724/article/details/6902082
要理就要理到底
别有个方法就行了
javabegin 2011-11-04
  • 打赏
  • 举报
回复
改成异步的呢BeginInvoke试试
nnggrr 2011-11-04
  • 打赏
  • 举报
回复
不是那样用的,这样
ExportThread = new Thread(new ThreadStart(delegateMethod));
Invoke(ExportThread);

方法里用Invoke不起作用的

TNight 2011-11-04
  • 打赏
  • 举报
回复

if (label.InvokeRequired)
{
label.Invoke(new del(setText));
}



private void setText()
{
}


我表示委托回调我一直这么用的
TNight 2011-11-04
  • 打赏
  • 举报
回复
可以直接在load事件里面关闭线程安全System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls=fasle;
chaojie_tan 2011-11-04
  • 打赏
  • 举报
回复
没有人知道了吗?

110,566

社区成员

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

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

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