黑马程序员技术交流社区

标题: 第一次用多线程 调用问题 [打印本页]

作者: No_why    时间: 2013-12-10 20:04
标题: 第一次用多线程 调用问题
本帖最后由 No_why 于 2013-12-12 20:42 编辑

窗体上放了一个listBox1,创建了两个线程,我再线程中访问这个listBox1的时候,系统说不能跨线程调用控件,这怎么回事 ,怎么解决??代码如下:        private void Form1_Load(object sender, EventArgs e)        {            //创建线程 需要System.Threading命名空间            Thread t1, t2; // 说明为窗体类成员            t1 = new Thread(new ThreadStart(BackgroundProcess));            t1.Start();    //启动线程t1        }        private void BackgroundProcess()        {            int i = 1;            while (true)            {                // 向列表框增加一个项目                listBox1.Items.Add("Iterations: " + i.ToString());i++;                Thread.Sleep(2000); // 指定线程休眠的时间            }                   }
作者: Coding    时间: 2013-12-10 20:21
public Form1()
        {
            InitializeComponent();
            ListBox.CheckForIllegalCrossThreadCalls = false;
        }

把这个 ListBox.CheckForIllegalCrossThreadCalls = false; 检查给关掉
作者: Coding    时间: 2013-12-10 20:22
public Form1()
        {
            InitializeComponent();
            ListBox.CheckForIllegalCrossThreadCalls = false;
        }

把这个 ListBox.CheckForIllegalCrossThreadCalls = false; 检查给关掉
作者: WENZISUN    时间: 2013-12-10 21:24
ListBox.CheckForIllegalCrossThreadCalls = false;这是忽略程序跨越线程运行导致的错误的意思,将false改成true




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2