小编Gon*_*nez的帖子

使用AsParallel时是否需要使用线程安全的方法?

当我使用时AsParallel(),下一个操作在多线程中运行,因此,我在此查询中使用的方法应该是线程安全的吗?

在下一个示例中,该方法Convert(string value)不是线程安全的,而是在以Select()方式运行的中使用AsParallel()

AsParallel()像standar一样使用正确Linq吗?

注意:该Convert()方法只是一个示例,但是可以想象一个更复杂的方法,该方法在多线程环境中执行时确实需要线程安全的实现。

List<string> myNamesList = new List<string>()
{
   //Initialize with a lots of elements
}

List<string> myConvertedNameList = myNamesList.AsParallel()
                                               .Where("Any Condition")
                                               .Select(x => Convert(x)) 
                                               .ToList();
Run Code Online (Sandbox Code Playgroud)
public string Convert(string value)
{
    int length = value.Length;
    string myFantasticValueConverted = "_" + value + "["+ length +"]";
    return myFantasticValueConverted;
}
Run Code Online (Sandbox Code Playgroud)

c# linq

3
推荐指数
1
解决办法
225
查看次数

标签 统计

c# ×1

linq ×1