异步是最终目的,多线程只是我们实现异步的一种手段
1、同步与异步的区别
同步(Synchronous):在执行某个操作时,应用程序必须等待该操作执行完成后才能继续执行。
异步(Asynchronous):在执行某个操作时,应用程序可在异步操作执行时继续执行。实质:异步操作,启动了新的线程,主线程与方法线程并行执行。
2、如果在等待某个特殊Task对象完成,然后再继续
Task.Wait();
3、如果要等待一组Task对象
Task<int> t1 = CountCharactersAsync( 1, "http://www.microsoft.com" );
Task<int> t2 = CountCharactersAsync( 2, "http://www.illustratedcsharp.com" );
Task<int>[] tasks = new Task<int>[] { t1, t2 };
3.1 等待所有任务都结束
Task.WaitAll(tasks);
3.2 等待一组任务中的某一个任务都结束
Task.WaitAny( tasks );
4、分别有4个重载