Có System.Diagnostics.Stopwatch
đếm thời gian trong khi máy tính đứng không?Có phải .NET Stopwatch standby/sleep/hibernate không?
Trả lời
Có nó.
Nhìn vào đoạn code trong Reflector cho thấy rằng nếu nó không phải là Stopwatch.IsHighResolution
, sau đó nó sẽ sử dụng truy cập đánh dấu (trong môi trường của tôi, giá trị là false
vì vậy nó sẽ sử dụng DateTime.UtcNow.Ticks
):
public void Start()
{
if (!this.isRunning)
{
this.startTimeStamp = GetTimestamp();
this.isRunning = true;
}
}
public static long GetTimestamp()
{
if (IsHighResolution)
{
long num = 0L;
SafeNativeMethods.QueryPerformanceCounter(out num);
return num;
}
return DateTime.UtcNow.Ticks;
}
Vâng, đúng vậy. Nhưng rất không chính xác. Xem câu trả lời của tôi. –
Thực ra, sau một chút thử nghiệm, nó thực hiện xuất hiện để đếm, nhưng nó đã được tắt. Đây là những gì tôi đã làm:
- Wrote mã dưới đây
- Ran nó, và ngay lập tức đưa máy tính của tôi trong Ngủ chế độ
- Chờ đợi 10 giây và đưa máy tính của tôi lại lên
Kết quả là thời gian gây sốc Elapsed
trong hơn 4 phút. Đường tắt. Vì vậy, tôi sẽ không sử dụng điều này như bất kỳ loại điểm chuẩn nào.
Dưới đây là đoạn code tôi sử dụng:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
namespace TestingCode
{
class Program
{
static void Main(string[] args)
{
Stopwatch testing = new Stopwatch();
testing.Start();
Console.WriteLine("Press any key to stop timer");
Console.ReadKey();
testing.Stop();
Console.WriteLine("Elapsed: {0}", testing.Elapsed);
Console.WriteLine("Done!!");
Console.ReadKey();
}
}
}
- 1. NET Stopwatch - hiệu suất phạt
- 2. Lớp .NET Stopwatch có thể khủng khiếp không?
- 3. Có phải asp.net MVC2 có trong khung 4.0 .net không?
- 4. Trong .NET, có cần phải đăng ký DLL không?
- 5. Có phải MEF OSGi dành cho .NET không?
- 6. Không .NET 4.0 có .NET 2.0 không?
- 7. .NET có phải là một tập hợp con hoàn hảo của .NET không?
- 8. Có phải Thread.Sleep (1) đặc biệt không?
- 9. Đo C#/Async Data Access Sử dụng StopWatch Lớp
- 10. .NET 4.0 Runtime có chạy chậm hơn .NET 2.0 Runtime không?
- 11. Có cần phải có hướng dẫn thử trong ứng dụng .NET không?
- 12. Có phải POST một từ điển cho một hành động .NET MVC có thể không?
- 13. C++ .NET có chết không?
- 14. Winform không có .NET framework?
- 15. Tại sao không phải My .Net Object Serializable?
- 16. C#/.NET messagebox không phải là phương thức
- 17. Tại sao không phải là XmlDocument động trong .NET 4?
- 18. Thời gian chạy .NET so với Java Hotspot: .NET có phải là một thế hệ sau không?
- 19. lớp Helper để thử nghiệm hiệu suất sử dụng StopWatch lớp
- 20. Tại sao .NET sử dụng quá nhiều CPU, đây có phải là vấn đề không?
- 21. Có phải "xấu" khi sử dụng try-catch để kiểm soát luồng trong .NET không?
- 22. Tôi có phải hiển thị .NET EULA không nếu tôi khởi động cài đặt
- 23. .NET JIT có phải là một hàm nhỏ gọi một hàm nhỏ khác không?
- 24. Tại sao không phải mọi lớp trong khung .Net đều có giao diện tương ứng?
- 25. Có phải kết thúc chuỗi regex được tối ưu hóa trong .NET không?
- 26. Các tham số "out" có phải là điều xấu trong .NET không?
- 27. .NET filesystemwatcher - đó có phải là tệp hoặc thư mục không?
- 28. .NET có phải là trình duyệt đăng nhập an toàn chủ đề không?
- 29. Ứng dụng buộc phải tắt (.net)
- 30. Nhấp chuột phải vào chọn .Net TreeNode
Thú vị câu hỏi, Tôi đã từng sử dụng đồng hồ bấm giờ cho hồ sơ của người đàn ông nghèo nàn nên điều này không bao giờ xảy ra với tôi. – Davy8
Câu hỏi hay .... hãy thử và cho chúng tôi biết :) –
Như bạn có thể nói từ câu trả lời, đây là hành vi cụ thể của việc triển khai thực hiện. Bộ đếm được bọc bởi Lớp trừu tượng phần cứng của hệ điều hành, cho các nhà thiết kế phần cứng nhiều tùy chọn để cắt xu. –