142得票6回答
创建一个完成的 Task<T>。

我正在实现一个方法Task&lt;Result&gt; StartSomeTask(),并在调用该方法之前已经知道了结果。我该如何创建一个已经完成的Task&lt;T&gt;? 这是我目前正在做的:private readonly Result theResult = new Result(...

134得票3回答
不调用Dispose()方法对于TPL任务对象来说是否被认为是可以接受的?

我希望在后台线程上触发一个任务,并且不需要等待任务完成。在 .net 3.5 中,我会这样做:ThreadPool.QueueUserWorkItem(d =&gt; { DoSomething(); }); 在 .net 4 中,TPL 是推荐的方式。我看到被推荐的常见模式是:Task.Fa...

132得票4回答
在C# 4.0中实现“fire and forget”方法的最简单方式

我非常喜欢这个问题: C#中最简单的执行异步方法的方式是什么? 现在我们有了C# 4.0中的Parallel扩展,是否有更好、更干净的方法使用Parallel linq进行Fire &amp; Forget?

129得票10回答
ASP.NET Web API在浏览器取消请求时出现OperationCanceledException异常

当用户加载页面时,会发出一个或多个ajax请求,这些请求会命中ASP.NET Web API 2控制器。如果用户在这些ajax请求完成之前转到另一个页面,则浏览器将取消这些请求。我们的ELMAH HttpModule将记录每个被取消请求的两个错误: 错误1:System.Threading....

129得票5回答
一个引起死锁的async/await示例

我看到了一些有关使用 C# 的 async/await 关键字进行异步编程的最佳实践(我对 C# 5.0 还比较陌生)。 给出了其中一个建议: 稳定性:了解同步上下文 ... 一些同步上下文是不可重入和单线程的。这意味着在给定时间内只能在上下文中执行一个工作单元。例如,Windows ...

120得票3回答
使用MVC5中的异步有什么优势?

什么是以下两者的区别:public ActionResult Login(LoginViewModel model, string returnUrl) { if (ModelState.IsValid) { IdentityResult result = Id...

117得票5回答
为什么当我尝试访问我的任务的结果属性时,这个异步操作会挂起?

我有一个多层的.Net 4.5应用程序,使用C#的新async和await关键字调用一个方法,但它卡住了,我不知道原因。 底部有一个异步方法,它扩展了我们的数据库实用工具OurDBConn(基本上是底层DBConnection和DBCommand对象的包装器): public static...

113得票8回答
Task.Run带参数?

我已经实现了一个简单的 Task.Factory.StartNew(),但我想知道如何改用 Task.Run() 来实现它? 以下是基本代码: Task.Factory.StartNew(new Action&lt;object&gt;( (x) =&gt; { // Do som...

111得票2回答
一个任务的异常没有被等待该任务或访问其异常属性所观察到。因此,未观察到的异常已经...

这是什么意思,如何解决? 我正在使用TPL任务。 整个错误信息: “一个任务的异常未被等待或访问其异常属性。 因此,未观察到的异常被终结线程重新抛出。” “在System.Threading.Tasks.TaskExceptionHolder.Finalize()处” “mscorlib”

108得票4回答
有没有类似于异步BlockingCollection<T>的东西?

我想要异步地awaitBlockingCollection&lt;T&gt;.Take()的结果,以便不会阻塞线程。寻找类似于这样的任何东西: var item = await blockingCollection.TakeAsync(); 我知道我可以这样做: var item = ...