নিয়মিত পুনরাবৃত্তকারী ব্লক (যেমন "ফলন ফেরত") কি "অ্যাসিঙ্ক" এবং "অপেক্ষা" এর সাথে বেমানান?
এটি আমি যা করার চেষ্টা করছি তার একটি ভাল ধারণা দেয়:
async Task<IEnumerable<Foo>> Method(String [] Strs)
{
// I want to compose the single result to the final result, so I use the SelectMany
var finalResult = UrlStrings.SelectMany(link => //i have an Urlstring Collection
await UrlString.DownLoadHtmlAsync() //download single result; DownLoadHtmlAsync method will Download the url's html code
);
return finalResult;
}
তবে, "সংস্থান থেকে বার্তা স্ট্রিং লোড করতে না পারা" উদ্ধৃত করে একটি সংকলক ত্রুটি পেয়েছি।
এখানে আরও একটি প্রচেষ্টা:
async Task<IEnumerable<Foo>> Method(String [] Strs)
{
foreach(var str in strs)
{
yield return await DoSomethingAsync( str)
}
}
তবে আবার, সংকলকটি একটি ত্রুটি ফেরায়: "সংস্থান থেকে বার্তা স্ট্রিং লোড করতে অক্ষম"।
আমার প্রকল্পের আসল প্রোগ্রামিং কোডটি এখানে
এটি খুব কার্যকর যখন আমার একটি তালিকার কার্য থাকে, সেই কাজটি কোনও ইউআরএল থেকে এইচটিএমএল ডাউনলোড করা যায় এবং আমি "ফলন প্রত্যাবর্তনের প্রত্যাশিত টাস্ক" সিনট্যাক্সটি ব্যবহার করি, ফলাফলটি আমি চাই IEnumerable<Foo>
। আমি এই কোডটি লিখতে চাই না:
async Task<IEnumerable<String>> DownLoadAllURL(String [] Strs)
{
List<Foo> htmls= new ...
foreach(var str in strs)
{
var html= await DownLoadHtmlAsync( str)
htmls.Add(item)
}
return htmls;
}
তবে মনে হচ্ছে আমাকেও করতে হবে।
কোন সাহায্যের জন্য ধন্যবাদ।
IAsyncEnumerator<T>
এর্ন দ্বারা নির্ধারিত ধরণটি ব্যবহার করে ।