当前位置:编程学习 > C#/ASP.NET >>

请教一个多线程的问题,为什么在vs2003和2005中会不一样

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Threading;
namespace wwwwwwwwwwwwwwwwww
{
    
    public partial class Form4 : Form
    {

        
        public Form4()
        {
            InitializeComponent();
        }

        private void Form4_Load(object sender, EventArgs e)
        {

        }
      

        private void button1_Click(object sender, EventArgs e)
        {
            B v = new B(label4, 100);
            Thread t = new Thread(new ThreadStart(v.a));
            t.Start();
           
           
        }
    }
   
}


using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using System.Threading;
namespace wwwwwwwwwwwwwwwwww
{
    public class B
    {
        Control l;
        int i;
        public B(Label l, int i)
        {
            this.l = l;
            this.i = i;
        }
        public void a()
        {
            Random ra = new Random(i);
            while (true)
            {
                Thread.Sleep(100);
                l.Text = ra.Next(1, 23).ToString();

            }

        }
    }
}
这段代码,在03上没有任何错误,但是在05上,会报一个,异常是:线程间操作无效: 从不是创建控件“label4”的线程访问它。
请问一下,这是为什么,谢谢!!!
--------------------编程问答-------------------- 这段代码,在05上运行的时候,有异常,但是不运行项目,在这个项目的bin目录下点那个exe的文件运,没有一点问题,我想知道这是为什么啊?? --------------------编程问答-------------------- 03和05在线程设计上改变比较大,你bin下的exe是不是05编译的吧,

03的编译好的程序当然不会出错啦,05在它线程里要操作其他线程上的对象,需要变成单线程的。
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,