আমার কাছে তৈরি করা কার্যগুলির একটি তালিকা রয়েছে:
public async Task<IList<Foo>> GetFoosAndDoSomethingAsync()
{
var foos = await GetFoosAsync();
var tasks = foos.Select(async foo => await DoSomethingAsync(foo)).ToList();
...
}
ব্যবহার করে .ToList()
, সমস্ত কাজ শুরু করা উচিত। এখন আমি তাদের সমাপ্তির অপেক্ষায় থাকতে এবং ফলাফলগুলি দেখতে চাই।
এটি উপরের ...
ব্লকে কাজ করে:
var list = new List<Foo>();
foreach (var task in tasks)
list.Add(await task);
return list;
এটি আমি যা চাই তা করে তবে এটি আনাড়ি বলে মনে হয়। আমি বরং এর চেয়ে সহজ কিছু লিখতে চাই:
return tasks.Select(async task => await task).ToList();
... তবে এটি সংকলন করে না আমি কী মিস করছি? বা এইভাবে জিনিসগুলি প্রকাশ করা কি সম্ভব নয়?
DoSomethingAsync(foo)
প্রতিটি foo এর জন্য ক্রমিক ক্রিয়াকলাপ করা দরকার , বা এটি সমান্তরাল প্রার্থী For ফরচ প্রতিটি <ফু> ?