冯海滨博客

当前位置:   网站首页 >> C#

winform多线程经典实例超级简单易懂

--------------------广告位招租--------------------

直接上代码

  private SynchronizationContext mainThreadSynContext; //在这里记录主线程的上下文;


        private void OnConnected(object state)//由于是主线程的同步对象Post调用,这个是在主线程中执行的
        {
            //这里就回到了主线程里面了
            //做一些事情
            string sss = Convert.ToString(state);
            richTextBox1.AppendText(sss+"\r\n");

            label1.Text =( Convert.ToInt32(label1.Text)+1).ToString();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            mainThreadSynContext = SynchronizationContext.Current;

            for (int i = 0; i < 10; i++)
            {
                Thread thread = new Thread(new ThreadStart(longidceshi));//创建线程

                thread.Start();
            }
            
        }

        public void longidceshi()
        {
          //多线程要做的列子

            for (int i = 0; i < 100; i++)
            {
                mainThreadSynContext.Post(new SendOrPostCallback(OnConnected), i);//通知主线程
            }


        }



发表我的评论

Hi,您需要填写昵称和邮箱!

  • 必填项