একটি কনসোল অ্যাপ্লিকেশন মধ্যে নির্ভরযোগ্য টাইমার

আমি সচেতন যে । NET এ তিনটি টাইমার ধরনের ( .NET ফ্রেমওয়ার্ক ক্লাস লাইব্রেরির টাইমার ক্লাসগুলির তুলনা )। আমি একটি থ্রেডেড টাইমার চয়ন করেছি কারণ প্রধান থ্রেডটি ব্যস্ত থাকলে অন্য ধরনের ড্রিফ্ট করতে পারে এবং আমি এটি নির্ভরযোগ্য হতে চাই।

এই টাইমারটি টাইমারের নিয়ন্ত্রণে কাজ করে এমন ভাবে আরেকটি থ্রেড তৈরি করা হয় যাতে এটি কাজ করে যখন এটি ব্যস্ত না হয় তখন প্যারেন্ট থ্রেডে কাজটি সম্পন্ন করতে পারেন।

একটি কনসোল অ্যাপ্লিকেশনে এই টাইমারের সাথে এই সমস্যাটি হল যে যখন টাইমার অন্য থ্রেডে টিকটিকি করছে তখন প্রধান থ্রেড কিছু করে না যাতে অ্যাপ্লিকেশনটি বন্ধ হয়ে যায়।

আমি সত্য একটি <�কোড> যোগ করার চেষ্টা করেছি যখন সত্য </কোড> লুপ, কিন্তু তারপর প্রধান থ্রেড খুব ব্যস্ত হয় যখন টাইমার বন্ধ হয়।

0
যোগ সম্পাদিত
মতামত: 7

2 উত্তর

আপনি প্রধান থ্রেডটি ব্লক করার জন্য কনসোল। রেডলাইন() এর মত কিছু ব্যবহার করতে পারেন, তাই অন্যান্য ব্যাকগ্রাউন্ড থ্রেডগুলি (টাইমার থ্রেডগুলির মত) এখনও কাজ করবে। আপনি একটি এক্সপ্লোর পরিচালনা ব্লক করতে একটি AutoResetEvent ব্যবহার করতে পারেন, তারপর (যখন আপনার প্রয়োজন) আপনি স্বয়ংক্রিয় থ্রেড প্রকাশ করতে যে AutoResetEvent বস্তুর উপর সেট() পদ্ধতি কল করতে পারেন। এছাড়াও টাইমার বস্তুর আপনার রেফারেন্স সুযোগ এবং গাজা সংগৃহীত আউট না তা নিশ্চিত করুন।

0
যোগ

একটি ManualResetEvent ব্যবহার করে বিবেচনা করুন তার প্রক্রিয়াকরণের শেষে মূল থ্রেডটি অবরোধ করুন, এবং টাইমারের প্রসেসিং শেষ হয়ে গেলে একবারে রিসেট() এ কল করুন। যদি এটি এমন কিছু হয় যা ক্রমাগত চালানোর প্রয়োজন হয়, তাহলে এটি একটি কনসোল অ্যাপ্লিকেশানের পরিবর্তে একটি পরিষেবা প্রক্রিয়ার মধ্যে নিয়ে যাওয়া বিবেচনা করুন।

0
যোগ