1)Task本身就是异步执行的(4.5的那个类)。
2)控制数量和终止线程问题可以考虑这个模式:
static async void RunAsync() { CancellationTokenSource ts = new CancellationTokenSource(); CancellationToken c = ts.Token; await Task.Run(() => { //此处放置你的任务…… },c).ContinueWith ((t) => { //继续你的任务…… },c); c.Register(() => { //当全部Task终止之后,请在此处逐一终止全部的线程 }); //停止全部活动 ts.Cancel(); }