2012-07-03 60 views
102

Và nếu có, có cách nào dễ dàng để có được tổng thời gian kể từ khi bắt đầu không?Ứng dụng C# có theo dõi thời gian chạy của ứng dụng C# không?

+3

ứng dụng của bạn hoặc ứng dụng khác? Tôi tin rằng WMI có thể theo dõi một cái gì đó như thế này, nhưng nếu đó là ứng dụng của riêng bạn, nó đơn giản hơn nhiều chỉ để có được ngày khởi động. – Ryan

Trả lời

164

Lớp System.Diagnostics.Process đã thuộc tính chứa thời gian bắt đầu mà bạn có thể sử dụng để tính toán bao lâu nó đã được chạy:

var current = System.Diagnostics.Process.GetCurrentProcess(); 
DateTime startedAt = current.StartTime 
+7

+1 - Đẹp nhất. Không bao giờ để ý cái đó. – Oded

+6

Tuyệt vời! Gotta love .net – broke

+1

Lưu ý rằng 'current.StartTime' là giờ địa phương của máy chủ chứ không phải là UTC. – George

7

Bạn có thể có một Static DateTime Variable cho Dự án của mình và lưu trữ ngày giờ trong Trình tạo lớp chính của bạn. Tham chiếu Biến tĩnh này và so sánh với thời gian hiện tại giúp bạn đạt được kết quả

+4

;) vâng, bạn cũng có thể jsut đọc thời gian từ biến hiện tại;) – TomTom

34

Sử dụng StopWatch lớp học cho tính năng này.

Thậm chí nếu khá quá mức, nó sẽ luôn hoạt động, ngay cả khi người dùng thay đổi đồng hồ hoặc thậm chí nếu có một số thay đổi tiết kiệm ánh sáng ban ngày trong quá trình. - Julien Lebosquain (Liên hệ với câu trả lời của tôi.)

+9

Thậm chí nếu khá quá mức, đó là câu trả lời duy nhất sẽ luôn hoạt động, ngay cả khi người dùng thay đổi đồng hồ, ngay cả khi có một số thay đổi tiết kiệm ánh sáng ban ngày trong quá trình chạy quá +1. –

+1

@JulienLebosquain: Cảm ơn. Tôi sẽ thêm điểm đó vào câu trả lời của tôi với các khoản tín dụng. –

+3

+1 để chống lại các downvotes vô nghĩa – nawfal

Các vấn đề liên quan