task-parallel-library相关内容
什么是在.NET 4.0中的计谋关键字的最佳替代品?我有一个需要异步操作后,返回值的方法。我注意到的wait()方法阻塞的线程完全从而使异步操作也没用。我有哪些选择运行异步操作,同时还释放UI线程? 解决方案 我觉得你的基本选项 使用工作和 .ContinueWith() 使用异步 CTP 和异步 / 等待 使用无扩展 最简单的方法可能是安装异步CTP。据我所知道的许可证允许罗科梅使用。它
..
我有一个可移植类库(PCL)的方法是这样的: 公共异步任务<字符串> GetLineStatuses() { HttpWebRequest的要求=(HttpWebRequest的)WebRequest.Create(URL); 使用(HttpWebResponse响应=(HttpWebResponse)等待request.GetResponseAsync())
..
我要存储日志的上下文信息,TLS,这样我可以设置在入口点的值,并在所有导致堆栈提供该值。这项工作做得很好,但我也使用第三方物流和线程池。这个问题就变成如何将TLS数据迁移到其他线程。我可以做这一切我自己,但我失去了很好的方法,比如的Parallel.For。 有没有一些方法,以在使用第三方物流时,TLS复制?这也适用于C#时,得到的计谋功能。 谢谢, 埃里克 解决方案 通常情况下,这是通过
..
我读到过这样的异步编程4.0 preferred方式的任务。我只是想知道是否有任何使用情况下使用的任务不应该是pferred过正常的C#线程$ P $? 解决方案 由于工作的使用底层线程池 (除非被标记为长时间运行),这是一个坏主意,用他们使用线程池不建议,例如,只要 在长期的I /被执行阻塞任务队列和prevent其他任务O操作。 在做需要线程标识,如设置亲和力的操作。
..
我想请求发送到服务器并处理返回值: 私有静态字符串发送(INT ID) { 任务< Htt的presponseMessage> responseTask = client.GetAsync(“AAAAA”); 字符串结果=的String.Empty; responseTask.ContinueWith(X =>结果=打印(
..
我们有一个托管的.NET / C#应用程序创建TPL任务对JPEG图像进行JPEG编码的元数据。每个任务都与TaskCreationOptions.LongRunning选项构造,如 工作任务=新任务(()=> TaskProc(),cancelToken,TaskCreationOptions.LongRunning); TaskProc()利用JpegBitmapDe cod
..
我想等待一个手动复位事件超时和观察注销。我想出了类似下面。手动复位事件对象超出了我的控制的API提供。有没有办法做到这一点,而不承担和阻塞线程线程池? 静态任务<布尔> TaskFromWaitHandle(WaitHandle的MRE,INT超时的CancellationToken CT) { 返回Task.Run(()=> { 布尔S = W
..
我有一类负责获取资源,这也对其进行缓存以便快速访问的。 该类公开了一个异步方法检索资源: 公共任务<对象> GetResourceAsync(字符串资源名称) { 返回Task.Factory.StartNew&其中;对象>(()=> { //看看在高速缓存中 //如果没有找到,从磁盘获取 //返回资源
..
我工作的一个WPF应用程序。 在屏幕/视图我不得不作出6调用WCF服务。没有这些电话都与在他们不共享数据也不是他们互相依赖的感觉。我打算使用第三方物流,使这6 WCF服务电话为6的任务。现在,应用程序可能会被部署单核机或多核机器上。 我被告知,TPL对单核机的使用实际上会增加时间采取的任务,因为这将被放置在CPU调度时间剪接不同任务的开销完成。这是真的。如果是的话,我应该还是继续我的设计或者我
..
我要运行后n毫秒,应该超时的操作。我已经通过传递的CancellationToken集后n毫秒到期实现了它两种途径,一是通过取消操作等待n毫秒后的自己,和一个。 我很担心,因为我的系统进入重负载下的的CancellationToken可能过期操作开始之前。看来,如果我实现了自己使用Task.Delay()的超时,那么延迟()调用不会运行,直到我开始工作后。 下面就是我怎么做的吧: 公共静态异
..
我有这样的功能: 公共异步任务< SomeViewModel> SampleFunction() { VAR数据= service.GetData(); VAR myList上=新的名单,其中,SomeViewModel>(); myList.AddRange(data.select(X =>新建SomeViewModel {
..
最近我一直在分析我的并行计算如何真正加快16核处理器。而我的结论通式 - 更多的线程,你必须每个核心少的速度你 - 是我的尴尬。这里是我的CPU负载和处理速度的图: 所以,你可以看到,处理器的负载增加,但增加的速度慢得多。我想知道为什么这样的效果发生,以及如何获得的不可扩展的行为的原因。 我做了一定要使用服务器GC模式。 我确信,我尽快并行适当的code为code确实比仅此而已 从RAM中
..
我的C#的任务正变得取消,但不是我。我没有得到一个堆栈跟踪,并在那里发生的问题,我想不通。 我的任务调用看起来是这样的: 变种T =任务<布尔> .Factory.StartNew(()=> { 布尔BOK = DoSomthingImportant(); 返回BOK; },TaskCreationOptions.Attache
..
标题说明了一切。这有什么错等待Task.Run(()=> semaphore.WaitOne()); ? System.Threading.Semaphore 不是线程仿射,所以我不认为会有问题。我知道, SemaphoreSlim 类是可用的,但我需要做跨进程同步的,而 SemaphoreSlim 不做到这一点。 或CAN /我应该创建的WaitHandle ?我自己的自定义类型 解决
..
这是一切都发生在一个窗口服务。 我有一个问答LT; T> (实际上是 ConcurrentQueue< T> )控股的项目等待处理。但是,我并不想在同一时间只有一个进程,我想,其中n是一个可配置的整数同时,处理n项。 我如何去这样做使用任务并行库? 我知道,太平人寿将分区集合代表开发人员并行处理,但不知道这是说我以后该功能。我是新来的多线程和TPL。 解决方案 使用 B
..
.NET 4.0具有包含好的任务类来封装aynchronous编程模型的第三方物流。我工作的一个应用程序,必须是.NET 2.0,但我想避免重写任务。有什么建议? 解决方案 我知道你说你不希望重写工作,但实际上你可以创造一些非常简单的使用闭包,其行为有点像一个任务对象。这是我使用: 公共委托 - [R AsyncTask的< R>(); 公共静态的AsyncTask&
..
我已经看到了使用code Cancellation.Register 与上一个使用条款 CancellationTokenRegistration 结果: 使用(CancellationTokenRegistration CTR = token.Register(()=> wc.CancelAsync())) { 等待wc.DownloadStringAsync(新的URI(“ht
..
我只看到3例行关于TPL使用它做同样的工作。 这里是code 公共静态无效的主要() { Thread.CurrentThread.Name =“主”; //创建一个任务,并通过使用一个lambda EX pression提供用户委托。 任务TASKA =新建任务(()=> Console.WriteLine(“你好,从TASKA。”)); //开始任务
..
我断言我的异步的理解/等待一对夫妇的场合,经常与一些辩论至于我是否是正确的。我真的AP preciate它,如果任何人都可以证实或否认我的理解,并清理任何误解,让我做的不是S $ P $垫误传。 高级理解 异步 / 等待为避免回调地狱而编写异步code的一种方式。正在执行异步方法的线程将返回线程池遇到一个时,等候,并拿起执行一次期待已久的操作完成。 低层次的理解 在JIT将拆分异步方法成离
..
在code以下继续创建线程,即使在队列empty..until最终出现的内存不足异常。如果我更换一个普通的foreach的Parallel.ForEach,这不会发生。任何人都知道的原因,这可能发生吗? 公共委托无效DataChangedDelegate(DataItem的OBJ); 公共类消费 { 公共DataChangedDelegate OnCustomerChanged;
..