আমার উইন্ডোজ ফর্ম অ্যাপ্লিকেশনটিতে ব্যাকগ্রাউন্ড থ্রেড প্রয়োগের পছন্দটি সম্পর্কে স্টাইলিস্টিক প্রশ্ন রয়েছে। বর্তমানে আমার BackgroundWorker
একটি ফর্ম রয়েছে যার একটি অসীম (while(true))
লুপ রয়েছে। এই লুপটিতে আমি WaitHandle.WaitAny
আগ্রহের কিছু না হওয়া পর্যন্ত থ্রেডটি স্নোজ করে রাখতে ব্যবহার করি । আমি যে ইভেন্টটির জন্য অপেক্ষা করি তার মধ্যে একটি হ'ল একটি " StopThread
" ইভেন্ট যাতে আমি লুপটি ভেঙে ফেলতে পারি। এই ইভেন্টটি যখন আমার ওভাররাইড থেকে সংকেতিত হয় Form.Dispose()
।
আমি কোথাও পড়েছি যা BackgroundWorker
অপারেশনগুলির জন্য প্রকৃত উদ্দেশ্য যার সাথে আপনি ইউআই টাই করতে চান না এবং একটি সীমাবদ্ধ পরিণতি যেমন কোনও ফাইল ডাউনলোড করা বা আইটেমগুলির ক্রম প্রক্রিয়াজাতকরণের মতো। এই ক্ষেত্রে "শেষ "টি অজানা এবং কেবল যখন উইন্ডোটি বন্ধ থাকে। সুতরাং আমার পক্ষে BackgroundWorker
এই উদ্দেশ্যে পরিবর্তে একটি ব্যাকগ্রাউন্ড থ্রেড ব্যবহার করা কি আরও উপযুক্ত হবে ?