আমি এএসপি.নেট এমভিসিতে ( http://visualstudiomagazine.com/articles/2013/07/23/async-ferences-in-aspnet-mvc-4.aspx ) এ অ্যাসিনক্রোনাস নিয়ামক পদ্ধতি সম্পর্কে একটি নিবন্ধের মাধ্যমে কাজ করছি এবং আমি মনে করি আমি পয়েন্ট মিস করতে পারে।
আমি লিখেছি এই পদ্ধতিটি বিবেচনা করুন, যা নিবন্ধের উদাহরণের সাথে খুব মিল similar
[HttpGet]
[AsyncTimeout(8000)]
[HandleError(ExceptionType = typeof(TimeoutException), View = "TimedOut")]
public async Task<ActionResult> Index(CancellationToken cancellationToken)
{
WidgetPageViewModel model = new WidgetPageViewModel()
{
toAdd = new Widget()
};
model.all = await _repo.GetAllAsync(cancellationToken);
return View(model);
}
আমি যেমন জিনিসগুলি বুঝতে পারি, রানটাইমের সময় জিনিসগুলি এভাবে প্রকাশিত হবে:
আগত HTTP অনুরোধের জন্য একটি ASP.NET থ্রেড তৈরি করা হবে।
এই থ্রেডটি (সম্ভবত কিছু প্রয়োজনীয় প্রাথমিক কাজ সম্পন্ন করে) উপরে আমার সূচক () পদ্ধতিতে প্রবেশ করবে।
এক্সিকিউশনটি "অপেক্ষা" কীওয়ার্ডে পৌঁছে যাবে এবং অন্য থ্রেডে ডেটা অর্জনের প্রক্রিয়া শুরু করবে।
আসল "এএসপি.এনইটি" থ্রেডটি কোডটিতে ফিরে আসবে যা আমার হ্যান্ডলার পদ্ধতি বলেছিল, ক্লাস টাস্কের উদাহরণ হিসাবে রিটার্ন মান হিসাবে।
যে ইনফ্রাস্ট্রাকচারাল কোডটিকে আমার হ্যান্ডলার পদ্ধতি বলে অভিহিত করা হয় মূল "এএসপি.এনইটি" থ্রেডে অপারেটিং চালিয়ে যাওয়া, যতক্ষণ না এটি এমন একটি পয়েন্টে পৌঁছায় যেখানে এটি আসল অ্যাকশন রেজাল্ট অবজেক্ট (যেমন পৃষ্ঠাটি রেন্ডার করার জন্য) ব্যবহার করতে হবে।
কলার তারপরে এই টাস্কটি ব্যবহার করুন es ফলাফলগুলি সদস্য হিসাবে এটি অ্যাক্সেস করবেন, যার ফলে এটি (অর্থাত "" ASP.NET "থ্রেড) উপরের # 3 ধাপে স্পষ্টতভাবে তৈরি থ্রেডটির জন্য অপেক্ষা করবে।
অপ্রত্যাশিত / অ্যাসিঙ্ক ব্যতীত একই জিনিসটির তুলনায় এটি কী সম্পাদন করছে তা আমি দেখছি না, দু'টি জিনিস বাদ দিয়ে যা আমি ক্ষুদ্র বলে মনে করি:
অপেক্ষার মাধ্যমে তৈরি কলার থ্রেড এবং কর্মী থ্রেড কিছু সময়ের জন্য সমান্তরালভাবে কাজ করতে পারে (উপরের # 5 এর "পর্যন্ত" অংশ)। আমার কুঁচকির সময়টি খুব ছোট is যখন পরিকাঠামো একটি নিয়ামক পদ্ধতিতে কল করে, আমি ভাবছি এটি আরও বেশি কিছু (যদি কিছু করতে পারে) আগে কন্ট্রোলার কলটির প্রকৃত অ্যাকশন রেজাল্ট প্রয়োজন।
দীর্ঘমেয়াদী অ্যাসিনক্রোনাস নিয়ামক ক্রিয়াকলাপের সময়সীমা ও বাতিল সম্পর্কিত কিছু সহায়ক নতুন অবকাঠামো রয়েছে।
অ্যাসিঙ্ক কন্ট্রোলার পদ্ধতি যুক্ত করার উদ্দেশ্য হ'ল এইএসপি.এনইটি কর্মীদের থ্রেডগুলি প্রকৃতপক্ষে এইচটিটিপি অনুরোধের উত্তর দেওয়ার জন্য মুক্ত করা। এই থ্রেডগুলি একটি সীমাবদ্ধ সম্পদ। দুর্ভাগ্যক্রমে, আমি নিবন্ধে প্রস্তাবিত প্যাটার্নটি কীভাবে এই থ্রেডগুলি সংরক্ষণ করে। এমনকি যদি তা হয় এবং কোনওরকমে কিছু নন-এএসপি.এনইটি থ্রেডে অনুরোধটি পরিচালনা করার বোঝা অফলোড করে, তবে এটি কী সম্পাদন করে? থ্রেডগুলি যা এইচটিটিপি অনুরোধ পরিচালনা করতে সক্ষম হতে পারে যা সাধারণভাবে থ্রেডের চেয়ে অনেক বেশি আলাদা?
Execution will reach the "await" keyword and kick off a data acquisition process on another thread
- অগত্যা।async
অন্য থ্রেডের প্রয়োজন নেই ... এটি একটি ধারাবাহিকতা। এটি একই থ্রেডে