冯海滨博客

您现在的位置是:首页 > C# > 正文

C#

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

happyfhb2020-01-19C#2658

直接上代码

  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);//通知主线程
            }


        }


平淡中储蓄成长

发表评论

评论列表

  • 这篇文章还没有收到评论,赶紧来抢沙发吧~