跨线程

简短总结一下C#里跨线程更新UI

前提是你 提交于 2019-12-07 01:27:06
跨线程更新UI是写多线程程序尤其是通信类的程序经常遇到的问题,这里面主要的问题是冲突,比如数据线程想要更新UI的时候,用户同时也在更新UI,就会出现争用。C#里可以用 Control . CheckForIllegalCrossThreadCalls = false ; 来关闭跨线程检测。但是这样做有一定的风险,容易让程序崩溃。 最好的办法是通过Invoke,这篇博客只是提供一个示例,至于那些线程同步、Invoke和BeginInvoke,Invoke底层实现神马的,有空再说吧。 一个简单的例子如下:(注,Form1 加入了一个名为txt的TextBox) using System ; using System . Collections . Generic ; using System . ComponentModel ; using System . Data ; using System . Drawing ; using System . Linq ; using System . Text ; using System . Windows . Forms ; using System . Threading ; namespace testThread { public partial class Form1 : Form { private delegate void