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.
Task.run verhält sich unter Windows vs. Linux (.NET) unterschiedlich: Aufgaben werden synchron unter Linux ausgeführt ⇐ Linux
-
- Similar Topics
- Replies
- Views
- Last post
-
-
Warum verhält sich Pd.isnull im DataFrame vs. Einzelelement unterschiedlich?
by Anonymous » » in Python - 0 Replies
- 4 Views
-
Last post by Anonymous
-