Ich versuche, System.Threading.Tasks.Parallel.ForEach in einem tragbaren Klassenbibliotheksprojekt mit Profil 158 (Targeting .NET für Windows Store Apps, .NET Framework 4.5, Silverlight 5 und Windows Phone 8.) ich renne von Visual Studio Professional 2012 Update 3Verwenden von System.Threading.Tasks.Parallel mit .NET Portable Subset
Wenn ich Code wie folgt schreiben:
var list = new List<int> {1, 2, 3, 4};
int whoCares;
System.Threading.Tasks.Parallel.ForEach(list, (item) => whoCares += item);
der Compiler sagt, dass „der Typ oder Namespace Der Name 'Parallel' existiert nicht im Namespace 'System.Threading.Tasks' "(Ich weiß, dass dieser Beispielcode nicht wirklich Thread-sicher ist.)
Ich habe auf MSDN bestätigt, dass Parallel.ForEach für tragbare Klassenbibliotheken unterstützt wird. Wenn ich den Objektbrowser verwende, um meinen Verweis auf ".NET Portable Subset" zu durchsuchen, sehe ich System.Threading.Tasks.Parallel, Mitglied der Komponente ".NET Portable Subset", und es hat tatsächlich Definitionen für System.Threading.Tasks .Parallel. Für jeden.
Was muss ich tun, um in meinem PCL-Projekt auf Parallel.ForEach zugreifen zu können?
Im August 2014 Microso ft hat ein Befehlszeilentool und eine Visual Studio-Erweiterung, den .NET Portability Analyzer, veröffentlicht, der Ihr Projekt analysiert und Ihnen zeigt, welche Plattformen es unterstützt. Der Analysator zeigt Ihnen, welche Codezeilen in Ihrem Projekt APIS verwenden, die nicht von verschiedenen Plattformen unterstützt werden. Die Ankündigung ist unter http://blogs.msdn.com/b/dotnet/archive/2014/08/06/leveraging-existing-code-across-net-platforms.aspx. Dies scheint viel bequemer zu sein, als es in einer Tabelle nachzuschlagen. –
Diese Tabelle wird jetzt online (via Excel Online) angezeigt und zeigt sich ziemlich schnell, so dass Sie nicht lokal herunterladen müssen –