您的位置:首页 > 其它

利用CheckForIllegalCrossThreadCalls=false设置跨线程访问

2015-06-01 22:25 344 查看
     在多线程程序中,新创建的线程不能访问UI线程创建的窗口控件,如果需要访问窗口中的控件,可以在窗口构造函数中将CheckForIllegalCrossThreadCalls设置为 false。具体如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Threading;
using System.Text;
using System.Windows.Forms;

namespace thread1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
CheckForIllegalCrossThreadCalls = false;
}
private Thread threada;
private void button1_Click(object sender, EventArgs e)
{
threada = new Thread(new ThreadStart(runner));
threada.Start();
}
private void runner()
{
for (int i = 0; i < 101; i++)
{
label1.Text = i.ToString();
Thread.Sleep(500);
}
}

private void Form1_Load(object sender, EventArgs e)
{
label1.Text = "0";
}
private void Form1_FormClosing(object sender, EventArgs e)
{
if (threada.IsAlive)
threada.Abort();
}
}
}

       在该应用中,一个窗口中有一个按钮,一个label,通过点击按钮,使label从0显示到100。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: