【发布时间】:2013-11-11 07:04:42
【问题描述】:
快速提问,我想等待一秒钟在启动一个没有返回值的异步任务。
这是正确的做法吗?
Task.Delay(1000)
.ContinueWith(t => _mq.Send(message))
.Start();
异常会发生什么?
【问题讨论】:
-
为什么要使用异步 CTP?最终版本已经发布了很长时间。如果您可以使用异步方法,则无需手动使用 ContinueWith - 只需等待延迟即可。能否请您提供更多背景信息?
-
@jon: 错误标签 :) 它在 Windows 服务中使用。
-
@JonSkeet 他可能被限制在 .Net 4(为了与 XP 兼容)并且对编译器和目标包感到不舒服。这与我的立场相似。
-
即使在 .NET 4 中,您也可以使用 BCL Async。 Acync CTP 仅适用于 VS 2010 上的 .NET。顺便说一句,无需调用
Start(),Delay已经开始了任务
标签: c# .net asynchronous task-parallel-library