13得票2回答
静态构造函数中的Task.Run

考虑下面的代码。static class X { public static int Value = Task.Run(() => 0).Result; } class Program { static void Main(string[] args) { ...

36得票2回答
Task.FromResult()与Task.Run()的区别

最近我遇到了很多这样的情况,async方法会同步执行,但仍然返回一个Task以便可以使用await等待其完成,例如:public virtual Task CreateAsync(TUser user) { ThrowIfDisposed(); if (user == null...

13得票2回答
Task.Factory.StartNew()与TaskEx.Run()的区别

Task.Factory.StartNew() 基本上是接收一个 Action 并返回一个 Task。在 Async CTP 中,我们有 TaskEx.Run(),它也接收一个 Action 并返回一个 Task。它们似乎做着相同的事情。为什么会引入 TaskEx.Run()?

11得票2回答
IObservable<T>.ToTask<T> 方法返回等待激活的任务。

为什么task会一直等待?var task = Observable .FromEventPattern&lt;MessageResponseEventArgs&gt;(communicator, "PushMessageRecieved") .Where(i =&gt; i....

7得票3回答
Task.wait and continueWIth

我有一个类似下面的任务。 我有一个类似下面的任务。 var task = Task&lt;string&gt;.Factory.StartNew(() =&gt; longrunningmethod() .ContinueWith(a =&gt; long...

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

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

8得票5回答
File.ReadAllText是线程安全的吗?

具体来说,使用 TPL 的 Task.Factory.StartNew 方法创建线程: Task.Factory.StartNew(() =&gt; { File.ReadAllText(@"thisFile.txt"); }); 在SOAP web服务环境中,使用Task...

14得票3回答
当token和source同时可用时,我应该使用哪一个来检查IsCancellationRequested?

如果我有一个CancellationTokenSource,在检查取消时仍然在作用域内——例如,如果我刚刚进行了数据库查询,并且还没有将CancellationToken传递给处理结果的任务,那么我应该从源或其令牌中访问IsCancellationRequested? 换句话说,如果两个选项都...

132得票4回答
在C# 4.0中实现“fire and forget”方法的最简单方式

我非常喜欢这个问题: C#中最简单的执行异步方法的方式是什么? 现在我们有了C# 4.0中的Parallel扩展,是否有更好、更干净的方法使用Parallel linq进行Fire &amp; Forget?

20得票1回答
取消等待句柄的操作

我在学习TPL,发现了一些我们可以使用取消机制的方法。但是关于WaitHandle我却卡住了。 如果我想要取消任务,我可以定义CancellationTokenSource并将其与任务一起传递,并且我可以使用ThrowIfCancellationRequested方法来取消任务。 我的问题...