【发布时间】:2018-10-21 05:07:21
【问题描述】:
无法延迟任务。
同步完全没有延迟。
异步停止在await Task.Delay(delay);。
我试过了:
Task wait4me = Task.Delay(1000);
await wait4me;
它没有工作 - 它停在await wait4me;。
Task<int> TaskOfTResult_MethodSync(int delay)
{
Debug.WriteLine($"TaskOfTResult_MethodSync delay = {delay} {DateTime.Now}");
int hours = 10;
Task.Delay(delay);
Debug.WriteLine($"TaskOfTResult_MethodSync after delay {DateTime.Now}");
return Task.FromResult(hours);
}
async Task<int> TaskOfTResult_MethodAsync(int delay)
{
Debug.WriteLine($"TaskOfTResult_MethodAsync delay = {delay} {DateTime.Now}");
await Task.Delay(delay);
Debug.WriteLine($"After await Task.Delay({delay}) {DateTime.Now}");
int hours = 11;
return hours;
}
测试
Task<int> task = TaskOfTResult_MethodSync(1000);
Debug.WriteLine("before task.Wait");
task.Wait();
Debug.WriteLine("after task.Wait");
int i = task.Result;
Debug.WriteLine($"i = {i}");
Debug.WriteLine($"");
Task<int> taskA = TaskOfTResult_MethodAsync(1000);
Debug.WriteLine("before taskA.Wait");
taskA.Wait();
Debug.WriteLine("after taskA.Wait");
i = taskA.Result;
Debug.WriteLine($"i = {i}");
Debug.WriteLine($"");
【问题讨论】:
-
否决票有什么问题?我提供问题、代码和测试。
标签: c# .net async-await delay