C# WinForm 异步执行耗时操作并将过程显示在界面中

 private void button3_Click(object sender, EventArgs e)
        {
            RunAsync(() =>
            {
                // Just loop.
                int ctr = 0;
                for (ctr = 0; ctr <= 10; ctr++)
                {
                    Thread.Sleep(2000);
                    RunInMainthread(() =>
                    {
                        textBox1.Text = ctr.ToString();
                    });
                }
              
            });
           
            MessageBox.Show("");
        }  // 异步线程
        public static void RunAsync(Action action)
        {
            ((Action)(delegate()
            {
                action.Invoke();
            })).BeginInvoke(null, null);
        }
        public void RunInMainthread(Action action)
        {
            this.BeginInvoke((Action)(delegate()
            {
                action.Invoke();
            }));
        }

原文地址:https://www.cnblogs.com/computer-lzy/p/8793685.html