在类库中使用Parallel.ForEach

时间:2017-09-01 12:02:37

标签: c# parallel.foreach .net-standard-1.4

简单的Parallel.ForEach不希望出现在图书馆类

using System;
using System.Collections.Generic;
using System.Threading.Tasks;

namespace UtilyTools
{
    public class Why
    {
        public void gluk()
        {
            var intList= new List<int> { 1, 2, 3};
            int notMatter=0;
            Parallel.ForEach(intList, (item) => notMatter+= item);
        }
    }
    // [...]

给我旧的:

  

CS0103 C#当前上下文中不存在名称Parallel

Project.csproj:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>netstandard1.4</TargetFramework>
  </PropertyGroup>
</Project>

根据要求拍摄错误的屏幕: nb:using不是红色下划线。

Picture of the issue

2 个答案:

答案 0 :(得分:3)

由于您使用的是.NetFramework库,而不是%path%,因此必须将System.Threading.Tasks.Parallel作为依赖项添加到项目中。

答案 1 :(得分:2)

Parallel.ForEach(list, (item) => please += item);

应该是:

Parallel.ForEach(intList, (item) => please += item);

您对变量名称进行了拼写错误(自更正后)。

此外,please += item不是thread safe - 您应该使用Interlocked.Add代替。

另外,请确保您的Target Framework位于 .NET Framework 4中。 然后,使 100%确保此行位于文件的顶部:

using System.Threading.Tasks;

如果您使用的是.NET Standard,请参阅@ m.rogalski的回答。