我试图一次性加载所有嵌入式资源异步。C#任务WhenAll,通过某个变量关联任务
这是我有:
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的方式,这串在数组中。
我怎么会去提前每个任务的资源名称“水库”
由于关联
请注意,异步在您的方案中没有多大成就。 GetManifestResourceStream返回一个只支持同步操作的流,因为它直接从内存中读取。 –
好点,这是解决它的一种方法。 –