7得票2回答
Console应用程序/Windows服务中使用Async/Await或Task.Run

我一直在研究(包括查看所有其他与此主题相关的SO帖子)最佳方法来实现一个(很可能是)Windows服务工作者,该工作者将从数据库中提取工作项,并以异步并行方式在后台“忘记即可”处理它们(工作项管理将在异步方法中处理)。 工作项将是Web服务调用和数据库查询。 生产这些工作项的生产者将应用一定的...

25得票4回答
ApiController的异步方法 - 有什么好处?何时使用?

我猜这个问题可能与ASP.NET MVC4 Async controller - Why to use?重复了,但是关于WebAPI的,而且我不同意那里的答案。 假设我有一个长时间运行的SQL请求。它的数据应该被序列化为JSON并发送到浏览器(作为xhr请求的响应)。示例代码: publi...

11得票2回答
Parallel.ForEach没有利用所有可用的线程池线程

为什么当我运行下面的示例时,Parallel.ForEach只使用与我的计算机核心数量相同的线程数? 我以为Parallel.ForEach会给你大约1000个线程池线程? int threads1; int threads2; ...

9得票4回答
为什么Task<T>没有实现IObservable<T>?

Task&lt;T&gt;.ContinueWith 和 IObservable&lt;T&gt;.Subscribe 有着相同的基本概念。它们非常相似,以至于 Reactive Extension 提供了一个转换扩展方法。由于 IObservable&lt;T&gt; 是 BCL 的一部分,...

27得票3回答
嵌套的Parallel.ForEach循环

我有一些代码,目前正在优化以适应多核架构的并发性。在我的一个类中,我发现了一个嵌套的foreach循环。基本上,外部循环遍历NetworkInterface对象数组。内部循环遍历网络接口IP地址。 这让我想到,嵌套的Parallel.ForEach循环一定是个好主意吗?在阅读了这篇文章(Ne...

50得票5回答
TPL与响应式框架的比较

在什么情况下会选择使用 Rx 而不是 TPL?还是这两个框架互不干扰? 据我所知,Rx 主要旨在提供对事件的抽象,并允许组合,但它也允许提供异步操作的抽象。可以使用 Createxx 重载和 Fromxxx 重载以及通过释放返回的 IDisposable 进行取消。 TPL 也通过 Tas...

7得票2回答
任务并行库中的优先级队列

是否有将任务以不同优先级添加到TPL运行时的先前工作? 如果没有,一般来说,我应该如何实现这个功能? 理想情况下,我计划使用生产者-消费者模式将“待办”工作添加到TPL中。有时,我可能会发现需要将低优先级的工作升级为高优先级的工作(相对于其他工作)。 如果有人有一些搜索关键字,可以在评论...

59得票4回答
Parallel.ForEach and async-await

我有这样的一个方法:public async Task&lt;MyResult&gt; GetResult() { MyResult result = new MyResult(); foreach(var method in Methods) { s...

11得票6回答
捕获异步操作中的异常

我在这里进一步了解异步操作:http://msdn.microsoft.com/en-us/library/hh873173(v=vs.110).aspx 浏览以下示例:Task&lt;bool&gt; [] recommendations = …; while(recommendations...

7得票2回答
从父子任务中返回值

在下面的代码片段中,一个任务使用TaskCreationOptions.AttachedToParent创建了两个子任务,这意味着父任务将等待子任务完成。 问题是:为什么父任务没有返回正确的值[102]?它是否首先确定其返回值,然后等待子任务完成。如果是这样,那么创建父子关系有什么意义? ...