Ich versuche, alle meine eingebetteten Ressourcen in einem Schritt async zu laden.C# Task WhenAll, Zuweisen von Aufgaben durch eine Variable
Hier ist, was ich habe:
private static async Task<String[]> GetResourcesAsync()
{
var asm = System.Reflection.Assembly.GetEntryAssembly();
var todo = new List<Task<string>>();
foreach (var res in asm.GetManifestResourceNames())
{
using (Stream stream = asm.GetManifestResourceStream(res))
using (StreamReader reader = new StreamReader(stream))
{
todo.Add(reader.ReadToEndAsync());
}
}
return await Task.WhenAll(todo);
}
Aber das Problem mit diesem Ansatz ist, ich habe keine Möglichkeit zu wissen, welche Ressource corrosponds an der Zeichenfolge im Array.
Wie würde ich mich über jede Aufgabe einen Ressourcennamen ‚res‘ assoziieren
Vielen Dank im Voraus
Beachten Sie, dass Async in Ihrem Szenario nicht viel erreicht. GetManifestResourceStream gibt einen Stream zurück, der nur synchrone Operationen unterstützt, da er direkt aus dem Speicher gelesen wird. –
Guter Punkt, gut, das ist eine Möglichkeit, es zu lösen. –