10.2.3  C#中的CheckForIllegalCrossThreadCalls属性

更新于 2026年10月10日 版权声明
10.2.3 C#中的CheckForIllegalCrossThreadCalls属性

CheckForIllegalCrossThreadCalls是Control类的属性,该属性获取或设置一个值,该值指示是否捕获对错误线程的调用,这些调用在调试应用程序时访问控件的Handle属性。如果试图访问控件的方法或属性之一的线程不是创建该控件的线程,则通常会导致不可预知的结果。当程序中存在无效的线程试图对访问控件的Handle属性进行调用,将CheckForIllegalCrossThreadCalls设置为true可以更容易地查找并诊断此线程。

(1)新建一个项目,命名为“Ex10_02”,默认窗体为Form1。

(2)在Form1窗体中主要添加的控件见表10-3。

表10-3 主要添加的控件

图示

(3)主要程序代码如下:

本例是利用8888端口进行局域网内部的点对点通信,只要确认对方IP就能相互发送信息。代码的添加主要分为以下几个步骤。

1)首先是对几个命名空间的引用,包括System.Net、System.Net.Sockets和System.Th reading,然后定义如下三个全局变量:(https://www.daowen.com)

图示

其中,UdpClient是本例的核心成员,主要通过它的相关方法进行数据的收发。

2)本例使用8888端口进行通信,所以应该在当前窗体构造函数Form1()内用该端口实例化UdpClient。

图示

CheckForIllegalCrossThreadCalls主要是解决线程间的控件操作问题,通过将其属性设置为fasle,可以禁用对操作控件的线程是否为创建该窗体的线程的检测,阻止该异常的发生。

3)单击“发送”按钮,添加如下代码:

图示

↑上一章 ↓下一章
关注公众号获取验证码
复制内容需要验证码(7.99元/天)