Ứng dụng C # có theo dõi thời gian hoạt động của ứng dụng đó không?


102

Và nếu có, có cách nào dễ dàng để lấy tổng thời gian kể từ khi bắt đầu không?


3
Ứng dụng của bạn hay ứ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, thì chỉ cần lấy ngày khi khởi động sẽ đơn giản hơn nhiều.
Ry-

Câu trả lời:


165

Các System.Diagnostics.Processlớp có 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

6
Tuyệt vời! Gotta tình yêu .net
đã phá vỡ

1
Hãy lưu ý rằng đó current.StartTimelà giờ địa phương của máy chủ, không phải UTC.
George

33

Sử dụng StopWatchlớp cho tính năng này.

Ngay cả khi quá mức cần thiết, nó sẽ luôn hoạt động, ngay cả khi người dùng thay đổi đồng hồ hoặc ngay cả khi có một số thay đổi tiết kiệm ánh sáng ban ngày trong quá trình này. - Julien Lebosquain (Bình luận cho câu trả lời của tôi.)


9
Ngay cả khi khá quá mức cần thiết, đó 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 +1.
Julien Lebosquain

1
@JulienLebosquain: Cảm ơn. Tôi sẽ thêm điểm đó trong câu trả lời của tôi với các khoản tín dụng đến hạn.
Nikhil Agrawal

6

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


4
;) vâng, bạn cũng có thể jsut đọc thời gian từ biến hiện có;)
TomTom
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.