当我使用时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)