public async Task<bool> GetVAsyncs() {
var ms = new List<int>() { 2000, 3000, 1000, 2000, 3000, };
var tasks = new List<Task<bool>>() { };
ms.ForEach(x => tasks.Add(GetVAsync(x)));
bool[] ret = await Task.WhenAll(tasks.ToArray());
return ret.All(x => x == true);
}
/// <summary>
/// 正确示范 不确定就用Task.Run包起来,总没错。
/// </summary>
/// <param name="delayMs"></param>
/// <returns></returns>
public async Task<bool> GetVAsync(int delayMs) {
bool ret = await Task.Run(() =>
Task.Run(() =>
Task.Run(() =>
Task.Run(() => {
Thread.Sleep(delayMs);
return true;
})
)
)
);
return ret;
}
/// <summary>
/// 错误示范,线程永远不会执行。
/// </summary>
/// <param name="delayMs"></param>
/// <returns></returns>
public async Task<bool> GetVAsync2(int delayMs) {
await new Task<bool>(() => {
Thread.Sleep(delayMs);
return true;
});
return true;
}