在不加任何修饰的情况下,C# 默认不允许跨线程访问控件,实际在项目开发过程中,经常使用跨线程操作控件属性,需要设置相关属性才能正确使用,两种方法设置如下:
方法1:告诉编译器取消跨线程访问检查,在窗体构造函数中编写,如下图所示:
方法2:设置所需的控件为跨线程访问即可文章来源:https://www.toymoban.com/news/detail-682123.html
this.textBox1.Invoke(new EventHandler(delegate //访问主界面的控件
{
textBox1.Text = class1.MyProperty.ToString();
}));
示例代码如下:文章来源地址https://www.toymoban.com/news/detail-682123.html
private void button1_Click(object sender, EventArgs e)
{
Task.Run(() => //开启线程
{
Class1 class1 = new Class1();
while (true)
{
Thread.Sleep(100);
class1.MyProperty = random.Next(210, 230);
this.textBox1.Invoke(new EventHandler(delegate //访问主界面的控件
{
textBox1.Text = class1.MyProperty.ToString();
}));
}
});
}
到了这里,关于C# 跨线程访问窗体控件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!