8得票2回答
TPL和异常处理

大家好,虽然与上述主题有许多问题,但我认为这个问题足够不同,需要提出一个新问题。我有以下的任务(Task)和一个用来处理多种任务状态(Status)的延续; TaskStatus.RanToCompletion, TaskStatus.Canceled和当然是通过TaskStatus.Faul...

8得票2回答
使用await关键字返回任务和不使用await关键字返回任务的主要区别是什么?

我正在封装AspNet.Identity。但是TPL让我感到困惑。 第一个例子: public virtual async Task<IdentityResult> RemovePasswordAsync(string userId) { var...

10得票1回答
ASP.NET和异步 - 它是如何工作的?

我知道这是一个常见的问题,但我已经阅读了大量的文章,感到困惑。现在我认为最好根本不要阅读它们。那么,ASP.NET如何工作(仅关于线程):http请求由来自线程池的线程提供服务。在请求处理时,该线程将处于忙碌状态,因为请求正在该线程内部处理。当请求处理完成后,线程会返回到线程池中,服务器发送响...

27得票2回答
如果我等待一个已经在运行或已经完成的任务会发生什么?

有一个名为Task的变量,假设现在该任务正在运行..通过执行以下代码:await _task; 我想知道当我编写以下代码时会发生什么:await _task; await _task; 它会执行两次任务吗?还是会因为已经运行过而抛出异常?

8得票2回答
我应该在.NET中使用CancellationTokenSource还是CancellationToken来取消任务?

我看到 CancellationToken 和 CancellationTokenSource 都有 IsCancellationRequested 获取方法。大多数示例将 CancellationToken 传递给在 Task 中执行的方法。在我的理解中,使用其中任何一个,调用都可以返回。如...

25得票6回答
使用ContinueWith任务有没有启动任务的方法?

我的代码:var r = from x in new Task<int>(() => 1) from y in new Task<int>(() => x + 1) select y; r.ContinueWith(x =&...

29得票2回答
TaskContinuationOptions.RunContinuationsAsynchronously 和 栈跳转

在这篇博客文章中,Stephan Toub描述了一个新功能,将在.NET 4.6中包括。该功能为TaskCreationOptions和TaskContinuationOptions枚举添加了另一个值,名为RunContinuationsAsynchronously。 他解释道: &quot...

9得票1回答
取消数据流管道中的特定项

我正在构建一个 Dataflows 管道,其工作是处理大型文件。每个文件都会被解析、分析和渲染;但每个文件可能会根据其类型在管道中走不同的路径。 此管道的用户界面包括要处理的文件列表、进度条和每个文件旁边的“取消”按钮(当然还有一个添加新文件到队列的按钮)。当用户点击特定文件旁边的“取消”按...

22得票3回答
为什么Task.WhenAll的继续执行是同步的?

我刚刚对 Task.WhenAll 方法进行了有趣的观察,当在 .NET Core 3.0 上运行时。我将一个简单的 Task.Delay 任务作为单个参数传递给 Task.WhenAll,并且我期望包装后的任务将与原始任务表现相同。但是事实并非如此。原始任务的延续异步执行(这是可取的),多个...

22得票2回答
从Task.WhenAll获取结果

我有多个返回相同类型对象的任务,我想使用 Task.WhenAll(new[]{t1,t2,t3}); 调用它们并读取结果。 但是当我试着使用时 Task<List<string>> all = await Task.WhenAll(new Task[] { t, ...