【问题标题】:System.Threading.TasksSystem.Threading.Tasks
【发布时间】:2011-02-19 09:33:15
【问题描述】:

我正在尝试使用该参考。我知道它在 c# 4 中。我不知道我目前拥有什么。

但基本上,当我写这行时:

Task.Factory.StartNew(someMethod);

它告诉我这是一个错误。有什么方法可以解决它,以便我的 ide 识别该库(任务并行库)?

【问题讨论】:

    标签: c# multithreading asynchronous task


    【解决方案1】:

    你只需要一个使用指令

    using System.Threading.Tasks;
    

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

    您确定您的目标是 .NET 4?签入您的项目属性。 (可用的类型不取决于您使用的语言的版本,而是您使用的框架的版本。)

    【讨论】:

    • 但即使我键入该命名空间,当我尝试使用 Task 时,它也不会给我它的名字(在自动生成名称的下拉列表中).. 为什么会这样?
    • 您提供给 Task 的链接表明这在 .NET 4.5 中使用,所以我假设这在 4.0 中是不可能的?您的问题是,他的目标是 .NET 4 是否让我失望。
    • @djerry:您没有仔细查看文档:在版本信息下,“支持:4.5、4”。 (看看我写这个答案的时间 - 早在 2011 年 2 月,很久 在 .NET 4.5 可用之前。)
    【解决方案2】:

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

    如果您的目标是 .NET 4,则 Task 已被引用;请参阅 Jon 的回答。

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

    如果您的目标是 .NET 2 或 Silverlight,那么您就不走运了; Task 在这些系统上不可用。

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

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

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-08-16
          • 1970-01-01
          • 2013-04-09
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多