내 모든 포함 리소스를 한 번에 비동기 적으로로드하려고합니다.C# 작업 언제, 일부 변수로 작업 연결
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를 알 방법이 없습니다입니다 배열하는 문자열 :
여기에 내가 가진거야.
내가 사전에 리소스 이름 '고해상도'
덕분에 각 작업을 연결하는 방법에 대한 갈 것이라고 어떻게
시나리오에서 async가 많이 수행하지 않는다는 점에 유의하십시오. GetManifestResourceStream은 메모리에서 직접 읽으므로 동기 작업 만 지원하는 스트림을 반환합니다. –
좋은 점은, 그게 그 문제를 해결하는 한 가지 방법입니다. –