在多线程程序中,新创建的线程不能访问UI线程创建的窗口控件,如果需要访问窗口中的控件,可以在窗口构造函数中将CheckForIllegalCrossThreadCalls设置为 false public Form1() { InitializeComponent(); CheckForIllegalCrossThreadCalls = false; } 也可以针对某一控件进行设置,例如: TextBox.CheckForIllegalCrossThreadCalls...
public delegate void AddString(string Mess); public void Add(string Mess) { if (listBox1.InvokeRequired) { AddString addmess = new AddString(Add); listBox1.Invoke(addmess, new object[] { Mess }); } else { listBox1.Items.Add(Mess); } } 调用该Add()方法往listBox1添加信息...
访问 Windows 窗体控件本质上不是线程安全的。如果有两个或多个线程操作某一控件的状态,则可能会迫使该控件进入一种... Healtheon 1 4454 bug:C#线程间操作无效: 从不是创建控件" XX" 的线程访问它 2016-05-16 16:46 − 今天遇到这个问题,百度了下,把解决的方法总结出来。我们在ui线程创建的子线程...
1、Control.CheckForIllegalCrossThreadCalls = false 2、用委托解决线程安全问题