WEB开发网
开发学院软件开发C语言 c#中使用多线程访问winform中控件的若干问题 阅读

c#中使用多线程访问winform中控件的若干问题

 2009-03-17 08:19:06 来源:WEB开发网   
核心提示:我们在做winform应用的时候,大部分情况下都会碰到使用多线程控制界面上控件信息的问题,c#中使用多线程访问winform中控件的若干问题,然而我们并不能用传统方法来做这个问题,下面我将详细的介绍,那么怎么解决这个问题呢,下面提供几种方案, 首先来看传统方法:public partial class Form1 :

我们在做winform应用的时候,大部分情况下都会碰到使用多线程控制界面上控件信息的问题。然而我们并不能用传统方法来做这个问题,下面我将详细的介绍。

首先来看传统方法:

      public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            Thread thread = new Thread(ThreadFuntion);
            thread.IsBackground = true;
            thread.Start();
        }
        private void ThreadFuntion()
        {
            while (true)
            {
                this.textBox1.Text = DateTime.Now.ToString();
                Thread.Sleep(1000);
            }
        }
    }

运行这段代码,我们会看到系统抛出一个异常:Cross-thread operation not valid:Control 'textBox1' accessed from a thread other than the thread it was created on . 这是因为.net 2.0以后加强了安全机制,不允许在winform中直接跨线程访问控件的属性。那么怎么解决这个问题呢,下面提供几种方案。

第一种方案,我们在Form1_Load()方法中加一句代码:

1 2 3  下一页

Tags:使用 线程 访问

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接