আমি ডেটটাইম.উইটকিউ এর সাথে কিছু ইউনিট পরীক্ষা করার সময় কিছু অপ্রত্যাশিত আচরণে চলে এসেছি। এটি প্রদর্শিত হয় যে আপনি যখন ডেটটাইম.নিউ / আউটসিউকে দ্রুত ধারাবাহিকতায় কল করেন, তখন মনে হয় আপনি আরও সুনির্দিষ্ট মিলিসেকেন্ড ইনক্রিমেন্ট ক্যাপচার না করে বরং দীর্ঘ প্রত্যাশিত প্রত্যাশিত ব্যবধানের জন্য একই মানটি ফিরিয়ে দিবেন।
আমি জানি একটি স্টপওয়াচ ক্লাস রয়েছে যা সঠিক সময় পরিমাপ করার জন্য আরও উপযুক্ত হবে তবে আমি আগ্রহী ছিলাম যদি কেউ ডেটটাইমে এই আচরণটি ব্যাখ্যা করতে পারে? ডেটটাইম.এখন (উদাহরণস্বরূপ, 50 এমএসের মধ্যে নির্ভুল?) এর জন্য কোনও সরকারী নির্ভুলতা নথিভুক্ত আছে? কেন ডেটটাইম.না এখন বেশিরভাগ সিপিইউ ঘড়ি যা পরিচালনা করতে পারে তার চেয়ে কম সুনির্দিষ্ট করা হবে? সম্ভবত এটি কেবল সর্বনিম্ন সাধারণ ডিনোমিনেটর সিপিইউ জন্য ডিজাইন করা হয়েছে?
public static void Main(string[] args)
{
var stopwatch = new Stopwatch();
stopwatch.Start();
for (int i=0; i<1000; i++)
{
var now = DateTime.Now;
Console.WriteLine(string.Format(
"Ticks: {0}\tMilliseconds: {1}", now.Ticks, now.Millisecond));
}
stopwatch.Stop();
Console.WriteLine("Stopwatch.ElapsedMilliseconds: {0}",
stopwatch.ElapsedMilliseconds);
Console.ReadLine();
}