C#异步执行的好处就是不会阻塞主线程的执行,即使是C#异步延时执行,虽然有延时时间,但是也不会阻塞主线程,下面的语句也一样能够继续执行,此时就需要用到C#的Task类,代码如下:
Task task = new Task(() => { Thread.Sleep(5000); //更新UI线程 this.Invoke(new Action(() => { button.Enabled = true; })); }); task.Start(); //do something。。。
如果“Thread.Sleep(5000);”休眠的方法不放在Task内部的话,下面的“do something”是得等5秒之后才会执行的,所以Task就解决了线程阻塞问题。