Task.run verhält sich unter Windows vs. Linux (.NET) unterschiedlich: Aufgaben werden synchron unter Linux ausgeführtLinux

Linux verstehen
Anonymous
 Task.run verhält sich unter Windows vs. Linux (.NET) unterschiedlich: Aufgaben werden synchron unter Linux ausgeführt

Post by Anonymous »

einList tasks = new List();

foreach (var fileBatch in fileBatches)
{
tasks.Add(Task.Run(async () =>
{
await somework();
}, cancellationToken));
}

//Wait for all tasks to complete
await Task.WhenAll(tasks);
< /code>
Erwartete Verhalten (wie unter Windows zu sehen):
Alle Aufgaben werden asynchron erstellt und dann gleichzeitig ausgeführt. Auswirkungen auf die Leistung. Unter Windows ist alle
tonwork () eine asynchronisierte Methode mit I/O-Bound-Arbeit, die Dateimetadaten von einem Mountspunkt von Linux unter Verwendung von FileInfo und Speichern in SQL DB auslese. Anzahl der Dateien, die ich verarbeite, könnte in Millionen sein. Die in Windows ausgeführte .NET -Konsolen -App dauert ungefähr 20 Sekunden, um 1 Million Dateien zu verarbeiten, während Linux bereitgestellt wird. Ist das erwartet? Wie kann ich eine konsistente asynchrone Aufgabenerstellung über Plattformen hinweg sicherstellen? Es funktionierte beider Maschinen wie erwartet. Jetzt frage ich mich, welcher Teil in meinem vorhandenen Code unter Linux unterschiedlich ist.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post