C# Parallel.ForEach是否具有可枚举的KeyValuePairs?
我是否使用了错误的并行ForEach重载方法? 当我使用普通的ForEach循环时,我能够获得当前项,它是预期的正确类型KeyValuePair 但是,当我使用并行版本时,似乎即使我将鼠标悬停在循环中的当前对象上,并且它似乎是正确的类型,仍然无法获得值和键属性 提前谢谢C# Parallel.ForEach是否具有可枚举的KeyValuePairs?,c#,.net,collections,task-parallel-library,C#,.net,Collections,Task Parallel Library,我是否使用了错误的并行ForEach重载方法? 当我使用普通的ForEach循环时,我能够获得当前项,它是预期的正确类型KeyValuePair 但是,当我使用并行版本时,似乎即使我将鼠标悬停在循环中的当前对象上,并且它似乎是正确的类型,仍然无法获得值和键属性 提前谢谢 static void TestParallelForEachKeyValuePair(IEnumerable<KeyValuePair<Animal, string>> kvps) {
static void TestParallelForEachKeyValuePair(IEnumerable<KeyValuePair<Animal, string>> kvps)
{
foreach (var kvp in kvps)
{
var test = kvp.Key;
}
Parallel.ForEach(kvps, (kvp) =>
{
kvp.
});
}
此测试方法正在运行,但IntelliSense未显示键和值 Windows窗体。 这就是智能感知问题
static void TestParallelForEachKeyValuePair()
{
List<KeyValuePair<int, string>> test = new List<KeyValuePair<int, string>>();
test.Add(new KeyValuePair<int, string>(1, "test1"));
test.Add(new KeyValuePair<int, string>(2, "test2"));
test.Add(new KeyValuePair<int, string>(3, "test3"));
Parallel.ForEach(test, (x) =>
{
MessageBox.Show(x.Key + " " + x.Value);
});
}
@AhmedAbdelhameed,感谢您的快速反馈。很高兴知道。这是否意味着某个地方有一个bug?真奇怪,我不确定。也许智能感知有问题。如果手动键入var test=kvp.Key;,会发生什么情况;?编译器会抱怨吗?你试过重新启动VS吗?@AhmedAbdelhameed,如果我按照你的建议手动分配变量,它会起作用。然而,重新启动VisualStudio后,intellisense的问题仍然存在。当我将相同的代码复制到另一台计算机上时,它会按预期工作。智能感知没有问题。那不是什么大问题。我可以接受这个。再次感谢。