System.Threading.Tasks

时间:2011-02-19 09:33:15

标签: c# multithreading asynchronous task

我正在尝试使用该引用。我知道它在c#4中。我不知道我现在有什么。

但基本上,当我写下这一行:

Task.Factory.StartNew(someMethod);
它告诉我这是一个错误。有没有办法解决它所以我的ide将识别该库(任务并行库)?

4 个答案:

答案 0 :(得分:13)

您只需要

的使用指令
using System.Threading.Tasks;

您不需要添加任何额外的引用 - Task在mscorlib中。

您确定要定位.NET 4吗?签入您的项目属性。 (可用的类型不依赖于您正在使用的语言的版本,而是您正在使用的框架的版本。)

答案 1 :(得分:7)

通过右键单击项目并选择“属性”,可以查看要定位的框架版本。在“应用程序”选项卡上,您的框架版本将位于“目标框架”下拉列表中。如果没有“应用程序”选项卡,请检查Silverlight选项卡。

如果您的目标是.NET 4,那么Task已被引用;见Jon的回答。

如果您的目标是.NET 3.5,那么您可以通过下载Microsoft Reactive Extensions并添加这些库作为参考来获得Task

如果你的目标是.NET 2或Silverlight,那么你运气不好; Task在这些系统上不可用。

答案 2 :(得分:0)

您可能引用了早期版本的mscorlib。确保您拥有4.0版本。如果您引用了较早的引用(如2.x),请删除引用并添加4.0引用。

答案 3 :(得分:-1)

您确定您的代码看起来像这样吗

var task2 = Task.Factory.StartNew(() => pr.DoSomething());

如果问题仍然存在,请分享您的代码。