task-parallel-library相关内容

TaskLocal< T>类?

我们打算TPL加入到我们的方法是长时间运行,并且可以被分成并行子过程的特定部分。我们是在这一点上会碰到的核心问题是,我们目前的code是依赖于的EntityFramework 6.1的DbContext这不是线程安全的。我花了一些时间挖掘到第三方物流及其InnerWorkings的。它不会出现,我们可以使用ThreadLocal的,作为一个任务可以/将运行在其上的多个线程在其整个生命周期(如果我理 ..
发布时间:2015-11-25 15:55:12 C#/.NET

如果调用任务尚未开始Task.wait可能不会等待?

我是通过C#电子书阅读杰弗里里希特的CLR和感到很不舒服阅读该任务的等待可能不会总是等待,我引用 “当一个线程调用wait方法时,系统会检查任务 该线程等待已开始执行。如果是,则 该线程调用wait会阻塞,直到任务完成 运行。但是,如果任务还没有开始执行尚未,则 系统可以(取决于的TaskScheduler)通过​​执行任务 使用所谓的等待线程。如果发生这种情况,则该线程 呼叫等待,不阻塞; ..
发布时间:2015-11-25 15:39:56 C#/.NET

为什么TaskCanceledException抛出并不总是中断到调试

我挖成异步计谋机制和观察的投掷 TaskCanceledException ,我可以'牛逼解释呢。 在下面的例子中(自包含的)我有说法 等待Task.Run(()=>空); 我知道,对自己这种说法是没有用的,但我孤立的问题,真正的code的逻辑,在某些情况下返回null。 为什么这个抛出一个 TaskCanceledException ?如果我返回(在下面的示例中5)的任意数 ..
发布时间:2015-11-25 15:39:10 C#/.NET

使用CancellationTokenSource

有人可以举一个例子,我应该在哪里使用下一个方法有三个参数。 VAR tokenSource =新CancellationTokenSource(); VAR令牌= tokenSource.Token; Task.Factory.StartNew(MyTask的,令牌,令牌); 你能解释请,为什么我们需要一个第三个参数? 解决方案 有没有超载 StartNew 的是 StartNe ..
发布时间:2015-11-25 15:38:50 C#/.NET

异步/计谋whenall并立即返回

我这个“简单”的测试code ......(不要打扰怪使用类方法...) 我试图把握任务<> 复杂......我想我有任务℃的了解甚少;>。开始() / 任务<>。结果模式(也许因为它更象是'老' Thread.Start( )?),但只要在我看来,要把握的东西(所以我扔在计谋关键字)......那么所有萦再次: - ( 为什么我的code立即返回第一个任务完成后 ..
发布时间:2015-11-25 15:38:28 C#/.NET

内置后台调度系统.NET?

我问,虽然我怀疑有任何这样的系统。 基本上,我需要安排任务,在某些时候,在未来(通常不超过几秒钟或可能从现在分钟)执行,并有解除,除非太晚了请求某种方式。 IE浏览器。 code,它是这样的: 变种X = Scheduler.Schedule(()=> SomethingSomething(),TimeSpan.FromSeconds(5)); ... x.Dispose(); //取 ..

为什么Console.WriteLine的Console.ReadKey()块输出调用另一个线程?

我有一个非常简单的控制台应用程序。 静态无效的主要(字串[] args) { DoAsync(); Console.ReadKey(); } 下面 DoAsync 开始设定的任务,并返回而不是等待任务的completition。 每个任务写入到控制台,但关键是pressed前ouptut不显示。 当我使用到Console.ReadLine 一切工作正常。 所以,我很 ..

任务并行库的目录遍历

我想遍历目录在我的硬盘驱动器,并通过搜索特定搜索字符串的所有文件。这听起来像是一个完美的候选人东西,可以(或应该)并行,因为IO做得相当缓慢。 传统上,我会写一个递归函数来查找并处理当前目录下的所有文件,然后递归到该目录中的所有目录。我不知道我怎么可以修改这是更多的并行。起初,我只是修改: 的foreach(目录中的字符串目录){...} 到 Parallel.ForEach(目录 ..
发布时间:2015-11-25 15:10:03 C#/.NET

任务从取消标记?

由于取消的道理,我想创建一个awaitable任务了吧,这是从来没有完成,但可以取消。我需要它这样的模式,这IMO应该是很常见的: 异步任务DoStuff(任务T,CT的CancellationToken) { // T是从TaskCompletionSource制成, // T和CT都超出了我的控制 任务T2 = TaskFromCancellationToken(克拉); ..
发布时间:2015-11-25 15:07:48 C#/.NET

TPL等待任务的完成与一个特定的返回值

我想提出一个要求于X不同的网络服务谁将会各自返回要么真或假 这些任务应该并行执行,我想等待第一个完成的与一个真正的价值。当我收到一个真正的价值,我不希望等待其他任务完成。 在下面的例子中, T1 不应该的期待已久的的,因为 T3 首先完成并返回真: VAR T1 = Task.Run<布尔>(()=> { Thread.sleep代码(5000); Con ..
发布时间:2015-11-25 15:02:21 C#/.NET

在异步操作捕获异常

我读了更多的异步这里:去通过这个例子: 任务<布尔> []建议= ...; 而(recommendations.Count大于0) { 任务<布尔>推荐=等待Task.WhenAny(建议); 尝试 { 如果(等待推荐)BuyStock(符号); 打破; } 赶上(WebException EXC) ..
发布时间:2015-11-25 15:01:00 C#/.NET

父任务不会等待子任务完成

因此​​,这里是我的code 任务< INT [] GT;父= Task.Run(()=> { 变种结果=新INT [3]; TaskFactory TF =新TaskFactory(TaskCreationOptions.AttachedToParent,TaskContinuationOptions.ExecuteSynchronously); 的fo ..
发布时间:2015-11-25 14:16:21 C#/.NET

从异步方法的同步部分处理异常

我处理,我开始任务可能抛出,同时仍然在初始线程上执行同步的情况。事情是这样的,为了说明: 静态异步任务TestAsync() { VAR随机=新的随机(Environment.TickCount)。接下来(); 如果(随机%2!= 0) 抛出新ApplicationException的(“第一”); 等待Task.Delay(2000); Con ..
发布时间:2015-11-25 14:09:50 C#/.NET

可以异步方法有昂贵的code之前的第一个“等待”?

难道是坏有昂贵的code在异步方法的开始,之前的第一个伺机被称为?如果这code被包裹着 TaskEx.Run 呢? 公共异步任务美孚() { //做一些初步昂贵的东西。 // ... //为异步方法与计谋第一个电话。 等待DoSomethingAsync; } 解决方案 由于里德说,这真的取决于上下文。在code已经在运行的部分的一点 - 但根据上下文 ..
发布时间:2015-11-25 14:02:06 C#/.NET

这是真的,对于长时间运行的过程中,最好是做线程池的线程手动呢?

我读了一天,对于长时间运行的任务我最好的选择是手动创建使用.NET的线程池或任务并行的线程来代替。我真的很想有人来开导我,因为我学习C#线程,专门为长期运行的IO任务。谢谢你在前进。 解决方案 这是真的。线程池进行了优化,工作小单位,你可以与其他工作抱着一根线程池线程干扰。 我的经验法则是,如果一个操作可能需要超过一秒钟,它不应该是一个线程池线程。这可能是相当长的。 尽管这是未公开的,如果 ..
发布时间:2015-11-25 14:01:57 C#/.NET

Oracle客户端与基于任务的异步模式(异步/等待)

我想写一堆方法查询在异步/计谋方式Oracle数据库。由于ODP.NET似乎既不支持awaitable *异步方法也开始/ EndOperationName对,做什么选择我要实现这个手动? 所有的例子都用于I / O密集​​型异步方法我到目前为止看到的调用从.NET库中唯一的其他异步方法,但没有光线洒在路上的上下文切换是内部完成。该文件说,在这些情况下,没有单独的线程的使用量和多线程的开销仅适用 ..
发布时间:2015-11-25 14:01:40 C#/.NET

在任务continuewith处理异常有道

请看看下面的code - 静态无效的主要(字串[] args) { //获取任务。 变种任务= Task.Factory.StartNew&其中; INT>(()=> {返回格(32,0);}); //错误处理。 task.ContinueWith(T => {Console.WriteLine(t.Exception.Message);}, ..
发布时间:2015-11-25 14:01:20 C#/.NET