73得票4回答
Parallel.ForEach在处理一个包含大对象的可枚举对象时可能会引发"内存不足"异常。

我正在尝试将数据库中存储的图像迁移到指向硬盘上文件的数据库记录。我试图使用Parallel.ForEach来加速这个过程,使用此方法查询数据。但是,我发现我得到了一个OutOfMemory异常。我知道Parallel.ForEach会查询一批可枚举对象以减少开销的成本,如果有一个用于间隔查询的...

73得票4回答
是否有通用的Task.WaitAll方法?(问题标题)

我启动了一些并行任务,就像这样:var tasks = Enumerable.Range(1, 500) .Select(i => Task.Factory.StartNew<int>(ProduceSomeMagicIntValue)) .ToArr...

73得票6回答
如何构建一个不启动的任务?

我想要使用这个Task<TResult>构造函数,但好像语法有些不对,请问有人可以帮我纠正代码吗? 另外,如果用这种方式构造Task,它不会被启动,我的理解是对的吗? 我认为我需要的构造函数是: Task<TResult>(Func<Object, TRes...

71得票6回答
处理任务 continuewith 中异常的正确方式

请看下面的代码- static void Main(string[] args) { // Get the task. var task = Task.Factory.StartNew<int>(() => { return div(32, 0); }); ...

70得票2回答
响应式框架、PLINQ、TPL和并行扩展如何相互关联?

至少自.NET 4.0发布以来,微软似乎在支持并行和异步编程方面投入了大量精力,很多围绕这方面的API和库出现了。特别是最近到处都提到以下几个花哨的名字: 反应式框架(Reactive Framework), PLINQ(Parallel LINQ), TPL(Task Parallel ...

68得票6回答
在C#中如何等待任务完成?

我想向服务器发送请求并处理返回的值: private static string Send(int id) { Task<HttpResponseMessage> responseTask = client.GetAsync("aaaaa"); string re...

64得票4回答
在Task.Run中使用CancellationToken进行超时控制不起作用。

好的,我的问题非常简单。为什么这段代码没有抛出TaskCancelledException?static void Main() { var v = Task.Run(() => { Thread.Sleep(1000); return 1...

64得票2回答
TPL Dataflow,Post()和SendAsync()之间的功能区别是什么?

我对通过Post()或SendAsync()发送项目的区别感到困惑。我的理解是,无论何时,一旦一个项目达到数据块的输入缓冲区,控制权就会返回给调用上下文,对吗?那么我为什么需要SendAsync呢?如果我的假设不正确,那么相反的是,如果使用数据块的整个思路是建立并发和异步环境,那么为什么有人要...

63得票4回答
在ASP.NET MVC Web应用程序中,Task.Run是否被视为不良实践?

背景 我们目前正在开发一个基于ASP .NET MVC 5、Angular.JS 1.4、Web API 2和Entity Framework 6的网络应用程序。出于可扩展性考虑,该网络应用程序主要依赖于异步/等待模式。我们的领域需要进行一些计算密集型计算,可能需要花费几秒钟(<10s...

63得票7回答
C# 5.0的async-await特性与TPL有何不同?

我看不出C#(和VB)的新异步特性与.NET 4.0的任务并行库有什么不同。例如,Eric Lippert的代码在这里:async void ArchiveDocuments(List<Url> urls) { Task archive = null; for(in...