2012-04-29 42 views
10

Thay thế WinRT cho System.Environment.TickCount là gì?Thay thế Hệ thống WinRT.Environment.TickCount

+0

Bạn cần nó để làm gì? Đối với nhiều ứng dụng 'DateTime.UtcNow' là hoàn toàn tốt, nhưng nó không tương đương. – CodesInChaos

+1

DateTime.UtcNow không thay thế nếu bạn cần thời gian đơn điệu. UtcNow là một giá trị tùy ý. – usr

+0

TickCount cũng là một giá trị tùy ý. DateTime.UtcNow.Tick là đơn điệu. –

Trả lời

7

Cần có sẵn, bởi vì nó isn't a problem. Nhưng nó không phải là, một [TypeForwardedTo] treo lên tôi đoán vì GetTickCount() không có trong danh sách trắng và .NET không bao giờ thông qua GetTickCount64. Dự phòng tiêu chuẩn hoạt động tốt, bạn có thể sử dụng pinvoke gọi hàm Windows gốc. Tôi đã xác minh rằng một chương trình sử dụng nó vượt qua bài kiểm tra Bộ ứng dụng Windows Certification Kit.

[System.Runtime.InteropServices.DllImport("kernel32.dll")] 
    private static extern long GetTickCount64(); 

Lưu ý rằng nó trả về một khoảng thời gian dài chứ không phải là int. Bạn có thể chỉ cần cast vào int để cắt bớt nếu điều đó quan trọng trong C# (nhưng không phải vb.net, chỉ cần nói dối về kiểu trả về)

+0

Vì vậy, tôi bối rối. Nếu chúng được phép cho các ứng dụng Metro, thì tại sao nó không có mặt trong các API của C# theo mặc định? –

+0

Tôi đã cố gắng giải thích nó trong câu trả lời. Đừng bắn sứ giả, tôi thích câu trả lời giải quyết vấn đề. –

+0

Vâng, tôi xin lỗi. Tôi không có ý để quấy rối bạn. Tôi tự hỏi nếu điều này sẽ thay đổi với bản phát hành cuối cùng. Cảm ơn mặc dù. –

1

Nó xuất hiện System.Environment.TickCount được hỗ trợ trong Windows 8 Windows store apps now.

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