Các tài liệu MSDN cho ManualResetEventSlim
bangManualResetEventSlim khuyến cáo thời gian chờ đợi
Bạn có thể sử dụng lớp này cho hiệu suất tốt hơn so với
ManualResetEvent
khi thời gian chờ đợi được dự kiến sẽ rất ngắn.
Thời lượng "rất ngắn" là bao lâu? Tại thời điểm nào thì lợi ích của việc sử dụng một đối tượng hạt nhân với một số tiền lớn hơn của việc tạo ra một đối tượng hạt nhân là ManualResetEvent
?
Đối với tôi, "rất ngắn" là khá vô nghĩa. Quy tắc của tôi là nếu tôi mong đợi sự kiện được đặt hầu hết thời gian (nghĩa là tôi không chờ đợi), thì tôi sẽ sử dụng 'ManualResetEventSlim'. Nếu không, tôi sẽ sử dụng 'ManualResetEvent'. Nếu bạn đang viết một ứng dụng nhạy cảm với hiệu suất, bạn nên kiểm tra mã của mình với cả hai để xác định xem có sự khác biệt nào không. Nếu bạn không tính micro giây, thì có lẽ sẽ lãng phí thời gian để lo lắng về cái nào nhanh hơn. –
"Rất ngắn" trong ngữ cảnh này có nghĩa là hàng chục đến hàng trăm micro giây. Phiên bản mỏng quay-chờ đợi với kỳ vọng rằng các chủ đề khác sẽ phát hành khóa trong thời gian ít hơn một vài thiết bị chuyển mạch bối cảnh sẽ mất. – doug65536