一。多线程创建
Task.Factory.StartNew( delegate { TimeConsumingTask(); } ); Task.Factory.StartNew( () => { TimeConsumingTask(); } ); Task.Run( () => { TimeConsumingTask2(); }); ThreadPool.QueueUserWorkItem(o => { TimeConsumingTask2(); });
二。在其他线程中修改UI
方式一:
this.label1.Invoke((MethodInvoker)delegate { this.label1.Text = "Time is UP"; });
方式二:使用Dispatcher
先在UI线程中 dispatcher = Dispatcher.CurrentDispatcher; 在工作线程中 dispatcher.Invoke(() => { this.label1.Text = "Time is UP2"; });