Có tương đương C# với số CountDownLatch của Java không?Có tương đương C# với CountDownLatch của Java không?
19
A
Trả lời
19
.NET Framework phiên bản 4 bao gồm các lớp mới System.Threading.CountdownEvent.
16
Đây là một thực hiện đơn giản (từ 9 Reusable Parallel Data Structures and Algorithms):
Để xây dựng một chốt đếm ngược, bạn chỉ khởi tạo truy cập của nó đến n, và có từng nhiệm vụ đơn vị trực thuộc nguyên tử sụt lần nó bởi một khi nó kết thúc , ví dụ bằng cách xung quanh hoạt động giảm giá bằng khóa hoặc với cuộc gọi đến Interlocked.Decrement. Sau đó, thay vì thực hiện một hoạt động, luồng có thể giảm và đợi bộ đếm trở thành 0; khi đánh thức, nó sẽ biết rằng n tín hiệu đã được đăng ký với chốt. Thay vì quay về điều kiện này, như trong khi (đếm! = 0), thường là một ý tưởng hay là để cho chuỗi chờ chặn, trong trường hợp này bạn phải sử dụng sự kiện .
public class CountdownLatch { private int m_remain; private EventWaitHandle m_event; public CountdownLatch(int count) { m_remain = count; m_event = new ManualResetEvent(false); } public void Signal() { // The last thread to signal also sets the event. if (Interlocked.Decrement(ref m_remain) == 0) m_event.Set(); } public void Wait() { m_event.WaitOne(); } }
Các vấn đề liên quan
- 1. Có tương đương C++ với BigDecimal của Java không?
- 2. C# tương đương với charAt của Java()?
- 3. Có tương đương với phương thức Java bằng C++ không?
- 4. Có tương đương với getch() từ C++ trong Java không?
- 5. Có tương đương trong C# với mã Java này không?
- 6. Python có cơ chế điều khiển tương tự với CountDownLatch của Java không?
- 7. Có tương đương Java của SignalR không?
- 8. Có tương đương với tĩnh của C trong C# không?
- 9. PHP có tương đương với #ifdef của C/C++ không?
- 10. Có Java tương đương với libevent không?
- 11. có Java tương đương với defaultdict của Python không?
- 12. Có một Ruby tương đương với Wicket của Java không?
- 13. Tương đương TreeSet của Java tương đương với Python?
- 14. Có tương đương C++ với getcwd không?
- 15. Tương đương với C++ map.lower_bound trong Java
- 16. C# tương đương với tài nguyên Java
- 17. C# tương đương với Iterator trong Java
- 18. C++ tương đương với Java này
- 19. Tương đương với C# ObservableCollection trong Java
- 20. C# Uri.EscapeDatastring() tương đương với Java
- 21. C# tương đương với Java dụ initializer
- 22. Tương đương Java của cin (C++)
- 23. Tương đương với IllegalArgumentException của Java trong C++
- 24. Mục tiêu C tương đương với ArrayList của Java
- 25. C# có tương đương với mã encodeURIComponent của JavaScript() không?
- 26. Có tương đương C# với mảng array_key_exists của PHP không?
- 27. PHP tương đương với Character.getNumericValue của Java (char c)?
- 28. Tương đương với Java hiệu quả của Bloch cho C#
- 29. Chức năng tương đương với "_getch()" của C trong Java?
- 30. C# tương đương với từ khóa 'thực hiện' của Java?
Tôi sẽ so sánh cả hai câu trả lời và tôi có thể phải trao nó cho bạn (CesarGon) ... có vẻ như bạn là tốt hơn, bởi vì bạn cung cấp một giải pháp được tích hợp vào C# rồi. – Kiril
Đủ công bằng, Lirik. :-) – CesarGon