2012-03-17 33 views
13

Có API hẹn giờ mới ở đâu đó cho phép tôi thực hiện việc này không?C# 5 và bộ hẹn giờ không đồng bộ

await timer.wait(500); 

Về cơ bản, để ngủ cho X ms và sau đó tiếp tục thực hiện phần còn lại của một hàm

Trả lời

21

sử dụng Thử

await Task.Delay(500); 
+0

Cảm ơn, đó là chính xác những gì tôi đang tìm kiếm. – jz87

+3

Như bạn mong đợi, nó cũng có quá tải để vượt qua trong một CancellationToken trong trường hợp bạn đang ở trong một hoạt động giao diện người dùng và cần phải hỗ trợ hủy bỏ. :) http://msdn.microsoft.com/en-us/library/hh160377(v=vs.110).aspx –

10

Tôi có một helper mà tôi thực sự thích, chỉ cần thêm một bit dễ đọc:

public static Task Seconds(this int seconds) 
{ 
    return Task.Delay(new TimeSpan(0,0,seconds)); 
} 

Điều này cho phép tôi sử dụng một cái gì đó như

await 5.Seconds(); 

Bạn có thể dễ dàng tạo các phương pháp mở rộng tương tự cho mili giây, phút, giờ hoặc bất kỳ thứ gì.

+0

rất thú vị :) –

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