আমি একটি টাইমার অবজেক্ট। আমি প্রতি মিনিটে এটি চালানো চাই। বিশেষত, এটি একটি OnCallBack
পদ্ধতি চালানো উচিত এবং কোনও OnCallBack
পদ্ধতি চলাকালীন নিষ্ক্রিয় হয়ে যায় । একবার কোনও OnCallBack
পদ্ধতি শেষ হয়ে গেলে এটি (ক OnCallBack
) একটি টাইমার পুনরায় চালু করে।
আমার এখনই যা আছে তা এখানে:
private static Timer timer;
private static void Main()
{
timer = new Timer(_ => OnCallBack(), null, 0, 1000 * 10); //every 10 seconds
Console.ReadLine();
}
private static void OnCallBack()
{
timer.Change(Timeout.Infinite, Timeout.Infinite); //stops the timer
Thread.Sleep(3000); //doing some long operation
timer.Change(0, 1000 * 10); //restarts the timer
}
তবে মনে হচ্ছে এটি কাজ করছে না। এটি প্রতি 3 সেকেন্ডে খুব দ্রুত চলে। এমনকি যদি কোনও সময়সীমা বাড়াতে হয় (1000 * 10)। দেখে মনে হচ্ছে যেন এটি অন্ধ দৃষ্টি দেয়1000 * 10
আমি কি ভুল করছি?
Timer.Change
: "যদি ডেটটাইম শূন্য হয় (0), কলব্যাক পদ্ধতিটি অবিলম্বে ডাকা হবে" " দেখে মনে হচ্ছে এটি আমার কাছে শূন্য।