c# - 任务延迟
问题描述
无法在任务中获得延迟。
同步完全没有延迟。
异步停止在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($"");
解决方案
你可以简单地这样做
Task.Delay(delay).Wait()
推荐阅读
- xpath - xpath 帮助:查找带有子按钮的 div
- r - 在 data.table 中的两列上滚动函数
- javascript - 单击正确答案后显示“正确的横幅和颜色”3秒,然后永远隐藏它们
- javascript - Amchart 添加箭头以强制定向图表
- php - PO 文件 Gettext 不起作用。不读po文件翻译
- vb.net - 如何最小化 Select Case 中的重复编码
- python - 用 np.nan 替换各种类型的空列表
- python - 'Client' object has no attribute 'send_message' error
- user-experience - 可以改善 dbeaver UX/减少所需的点击次数吗?
- vue.js - Vuetify 2.4.2 打破了 Gridsome 0.7.23 构建