task-parallel-library相关内容

等待在.NET 4.0中的选择吗?

什么是在.NET 4.0中的计谋关键字的最佳替代品?我有一个需要异步操作后,返回值的方法。我注意到的wait()方法阻塞的线程完全从而使异步操作也没用。我有哪些选择运行异步操作,同时还释放UI线程? 解决方案 我觉得你的基本选项 使用工作和 .ContinueWith() 使用异步 CTP 和异步 / 等待 使用无扩展 最简单的方法可能是安装异步CTP。据我所知道的许可证允许罗科梅使用。它 ..
发布时间:2015-11-26 10:17:22 C#/.NET

如何线程本地存储(TLS)使用TPL时管理?

我要存储日志的上下文信息,TLS,这样我可以设置在入口点的值,并在所有导致堆栈提供该值。这项工作做得很好,但我也使用第三方物流和线程池。这个问题就变成如何将TLS数据迁移到其他线程。我可以做这一切我自己,但我失去了很好的方法,比如的Parallel.For。 有没有一些方法,以在使用第三方物流时,TLS复制?这也适用于C#时,得到的计谋功能。 谢谢, 埃里克 解决方案 通常情况下,这是通过 ..

是否有其中任务,不应使用任何情形?

我读到过这样的异步编程4.0 preferred方式的任务。我只是想知道是否有任何使用情况下使用的任务不应该是pferred过正常的C#线程$ P $? 解决方案 由于工作的使用底层线程池 (除非被标记为长时间运行),这是一个坏主意,用他们使用线程池不建议,例如,只要 在长期的I /被执行阻塞任务队列和prevent其他任务O操作。 在做需要线程标识,如设置亲和力的操作。 ..
发布时间:2015-11-26 10:06:49 C#/.NET

我怎么等到任务在C#中完成?

我想请求发送到服务器并处理返回值: 私有静态字符串发送(INT ID) { 任务< Htt的presponseMessage> responseTask = client.GetAsync(“AAAAA”); 字符串结果=的String.Empty; responseTask.ContinueWith(X =>结果=打印( ..
发布时间:2015-11-26 10:06:44 C#/.NET

ManualResetEvent的包装纸作为awaitable任务

我想等待一个手动复位事件超时和观察注销。我想出了类似下面。手动复位事件对象超出了我的控制的API提供。有没有办法做到这一点,而不承担和阻塞线程线程池? 静态任务<布尔> TaskFromWaitHandle(WaitHandle的MRE,INT超时的CancellationToken CT) { 返回Task.Run(()=> { 布尔S = W ..
发布时间:2015-11-26 10:02:50 C#/.NET

如何使用任务有条件地运行code asynchonously

我有一类负责获取资源,这也对其进行缓存以便快速访问的。 该类公开了一个异步方法检索资源: 公共任务<对象> GetResourceAsync(字符串资源名称) { 返回Task.Factory.StartNew&其中;对象>(()=> { //看看在高速缓存中 //如果没有找到,从磁盘获取 //返回资源 ..
发布时间:2015-11-26 10:00:54 C#/.NET

任务并行库 - 并行的单核

我工作的一个WPF应用程序。 在屏幕/视图我不得不作出6调用WCF服务。没有这些电话都与在他们不共享数据也不是他们互相依赖的感觉。我打算使用第三方物流,使这6 WCF服务电话为6的任务。现在,应用程序可能会被部署单核机或多核机器上。 我被告知,TPL对单核机的使用实际上会增加时间采取的任务,因为这将被放置在CPU调度时间剪接不同任务的开销完成。这是真的。如果是的话,我应该还是继续我的设计或者我 ..
发布时间:2015-11-26 09:42:12 C#/.NET

的CancellationToken超时VS task.delay()和超时

我要运行后n毫秒,应该超时的操作。我已经通过传递的CancellationToken集后n毫秒到期实现了它两种途径,一是通过取消操作等待n毫秒后的自己,和一个。 我很担心,因为我的系统进入重负载下的的CancellationToken可能过期操作开始之前。看来,如果我实现了自己使用Task.Delay()的超时,那么延迟()调用不会运行,直到我开始工作后。 下面就是我怎么做的吧: 公共静态异 ..
发布时间:2015-11-26 01:12:08 C#/.NET

并行code糟糕的可扩展性

最近我一直在分析我的并行计算如何真正加快16核处理器。而我的结论通式 - 更多的线程,你必须每个核心少的速度你 - 是我的尴尬。这里是我的CPU负载和处理速度的图: 所以,你可以看到,处理器的负载增加,但增加的速度慢得多。我想知道为什么这样的效果发生,以及如何获得的不可扩展的行为的原因。 我做了一定要使用服务器GC模式。 我确信,我尽快并行适当的code为code确实比仅此而已 从RAM中 ..
发布时间:2015-11-26 01:02:04 C#/.NET

谁取消了我的任务是什么?

我的C#的任务正变得取消,但不是我。我没有得到一个堆栈跟踪,并在那里发生的问题,我想不通。 我的任务调用看起来是这样的: 变种T =任务<布尔> .Factory.StartNew(()=> { 布尔BOK = DoSomthingImportant(); 返回BOK; },TaskCreationOptions.Attache ..
发布时间:2015-11-26 01:01:52 C#/.NET

这有什么错伺机Task.Run(()=> semaphore.WaitOne())?

标题说明了一切。这有什么错等待Task.Run(()=> semaphore.WaitOne()); ? System.Threading.Semaphore 不是线程仿射,所以我不认为会有问题。我知道, SemaphoreSlim 类是可用的,但我需要做跨进程同步的,而 SemaphoreSlim 不做到这一点。 或CAN /我应该创建的WaitHandle ?我自己的自定义类型 解决 ..
发布时间:2015-11-26 00:56:44 C#/.NET

只处理n项在同一时间同时使用任务并行库

这是一切都发生在一个窗口服务。 我有一个问答LT; T> (实际上是 ConcurrentQueue< T> )控股的项目等待处理。但是,我并不想在同一时间只有一个进程,我想,其中n是一个可配置的整数同时,处理n项。 我如何去这样做使用任务并行库? 我知道,太平人寿将分区集合代表开发人员并行处理,但不知道这是说我以后该功能。我是新来的多线程和TPL。 解决方案 使用 B ..

我应该怎么做使用任务< T>在.NET 2.0?

.NET 4.0具有包含好的任务类来封装aynchronous编程模型的第三方物流。我工作的一个应用程序,必须是.NET 2.0,但我想避免重写任务。有什么建议? 解决方案 我知道你说你不希望重写工作,但实际上你可以创造一些非常简单的使用闭包,其行为有点像一个任务对象。这是我使用: 公共委托 - [R AsyncTask的< R>(); 公共静态的AsyncTask& ..
发布时间:2015-11-26 00:50:46 C#/.NET

关于Task.Start(),Task.Run()和Task.Factory.StartNew(的使用)TPL

我只看到3例行关于TPL使用它做同样的工作。 这里是code 公共静态无效的主要() { Thread.CurrentThread.Name =“主”; //创建一个任务,并通过使用一个lambda EX pression提供用户委托。 任务TASKA =新建任务(()=> Console.WriteLine(“你好,从TASKA。”)); //开始任务 ..
发布时间:2015-11-26 00:41:57 C#/.NET

我是异步的理解/计谋,它的工作原理和它的好处,是否正确?

我断言我的异步的理解/等待一对夫妇的场合,经常与一些辩论至于我是否是正确的。我真的AP preciate它,如果任何人都可以证实或否认我的理解,并清理任何误解,让我做的不是S $ P $垫误传。 高级理解 异步 / 等待为避免回调地狱而编写异步code的一种方式。正在执行异步方法的线程将返回线程池遇到一个时,等候,并拿起执行一次期待已久的操作完成。 低层次的理解 在JIT将拆分异步方法成离 ..
发布时间:2015-11-26 00:38:50 C#/.NET

为什么Parallel.Foreach创造无限的主题?

在code以下继续创建线程,即使在队列empty..until最终出现的内存不足异常。如果我更换一个普通的foreach的Parallel.ForEach,这不会发生。任何人都知道的原因,这可能发生吗? 公共委托无效DataChangedDelegate(DataItem的OBJ); 公共类消费 { 公共DataChangedDelegate OnCustomerChanged; ..
发布时间:2015-11-26 00:31:14 C#/.NET