2009-09-28 28 views

उत्तर

34

Stopwatch उच्च संकल्प टाइमर पर आधारित है (जहां उपलब्ध हो), तो आप देख सकते हैं कि IsHighResolution

6

साथ StopWatch- यह भी प्रणाली है कि एक उच्च संकल्प प्रदर्शन काउंटर का समर्थन नहीं करते पर काम करता है और आप किसी भी जरूरत नहीं है इसका उपयोग करने के लिए बाहरी पुस्तकालयों।

यदि कोई उच्च रिज़ॉल्यूशन काउंटर के लिए कोई समर्थन नहीं है तो दूसरा Win32Exception फेंकता है।

18

वे उच्च रिज़ॉल्यूशन समय की बात करते समय समान होते हैं।

[DllImport("Kernel32.dll")] 
private static extern bool QueryPerformanceCounter(out long PerformanceCount); 

और इस:

दोनों इस का उपयोग

[DllImport("Kernel32.dll")] 
private static extern bool QueryPerformanceFrequency(out long Frequency); 

अंतर्निहित समय क्या करना है। (आप इसे Reflector.NET के साथ सत्यापित कर सकते हैं)। मैं स्टॉपवॉच का उपयोग करता हूं क्योंकि यह पहले से ही ढांचे का हिस्सा है (किसी अन्य डीएल को जोड़ने की आवश्यकता नहीं है) और इसमें HiPerfTimer की तुलना में बेहतर सुविधाएं थीं।

+6

हां- हालांकि स्टॉपवॉच वास्तव में बेहतर है क्योंकि इसमें फॉलबैक विकल्प है। यदि उच्च प्रदर्शन काउंटर समर्थित नहीं है तो HiPerfTimer Win32Exception फेंकता है। – RichardOD

+1

हां मैंने अंततः HiPerfTimer को छोड़ दिया। CodeProject पर आलेख थोड़ा flimsy है (लेकिन विचार अच्छा था)। मैंने स्टॉपवॉच की भी सिफारिश की, यह अधिक मजबूत है और जब डिफ़ॉल्ट क्वेरी द्वारा वर्णित IsHighResolution से जुड़ा हुआ है, तो QueryPerformanceFrequency विफल हो जाती है। – ParmesanCodice

संबंधित मुद्दे