当前位置:  开发笔记 > 编程语言 > 正文

C#交叉线程操作错误

如何解决《C#交叉线程操作错误》经验,为你挑选了1个好方法。

在用于模拟lan messenger的ac#程序中,我有一个beginreceive的回调函数,我需要显示在特定文本框中收到的文本.. this.textBox1.Text = sb.ToString(); 但是,这样做,我得到一个跨线程操作无效错误.我确实意识到我需要使用object.invoke方法但是你可以请我提供完整的代码来调用委托,因为在涉及线程时我仍然很天真.谢谢你



1> Marc Gravell..:

您需要将工作推回到UI; 幸运的是,很容易:

this.Invoke((MethodInvoker) delegate {
    this.textBox1.Text = sb.ToString();
});

这使用C#的"匿名方法"和"捕获变量"功能来完成所有繁重的工作.在.NET 3.5中,您可能更喜欢使用Action,但这没有什么区别:

this.Invoke((Action) delegate {
    this.textBox1.Text = sb.ToString();
});

推荐阅读
惬听风吟jyy_802
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有