私はすべての埋め込みリソースを1つのasyncにロードしようとしています。C#タスクWhenすべて、いくつかの変数でタスクを関連付ける
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);
}
しかし、このアプローチの問題は、私はどのようなリソースcorrospondsを知る方法はありませんで、アレイ内のどの文字列に:
は、ここで私が持っているものです。
私は事前にリソース名「RES」
のおかげで、各タスクを関連付けるに行くかどう
あなたのシナリオでは、asyncはあまり効果がないことに注意してください。 GetManifestResourceStreamは、メモリから直接読み取るため、同期操作のみをサポートするストリームを返します。 –
良い点は、それはそれを解決する一つの方法です。 –