Есть ли эквивалент C# для Java CountDownLatch?Есть ли эквивалент C# для Java CountDownLatch?
ответ
В .NET Framework версии 4 включает в себя новый System.Threading.CountdownEvent класс.
Вот простая реализация (от 9 Reusable Parallel Data Structures and Algorithms):
Чтобы построить обратный отсчет задвижку, вы просто инициализировать счетчик на п, и имеет каждый подчиненной задачи атомарна декрементирует один, когда он заканчивает , , например, окружая операцию декремента с блокировкой или с призывом к блокировке. Затем, вместо того, чтобы выполнить операцию, нить может уменьшаться и ждать счетчик, чтобы стать нулевым; когда проснулся, он будет знать, что n сигналов были зарегистрированы с защелкой. Вместо того, чтобы вращаться по этому условию, , как и во время (count! = 0), обычно - хорошая идея, чтобы ожидание потока блокировалось, и тогда вам нужно будет использовать событие.
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(); } }
- 1. CountDownLatch эквивалент
- 2. Java: есть CountDownLatch потокобезопасны
- 3. Есть ли эквивалент Java для C# HttpServerUtility.UrlTokenDecode?
- 4. Есть ли эквивалент C++ для Java BigDecimal?
- 5. Есть ли эквивалент C# для Java LineNumberReader?
- 6. Есть ли Java-эквивалент для элемента C#
- 7. Есть ли Java-эквивалент InvalidOperationException C#?
- 8. Есть ли эквивалент java setFocusable() в C#?
- 9. Есть ли эквивалент C# для метода findWithinHorizon
- 10. Есть ли эквивалент Boost :: Python для Java?
- 11. Есть ли эквивалент Java для unputc?
- 12. Есть ли эквивалент C++ для java.lang.Number?
- 13. Есть ли Java-эквивалент frexp?
- 14. Есть ли эквивалент java для NSPredicate?
- 15. Есть ли эквивалент Java ORM для QSqlTableModel?
- 16. Есть ли Java-эквивалент для HttpServerUtility.UrlTokenEncode для C#?
- 17. Есть ли эквивалент C++ для java.util.concurrent.locks.ReentrantReadWriteLock?
- 18. C#: есть ли JTable эквивалент?
- 19. Есть ли эквивалент Python itertools для Java?
- 20. Есть ли эквивалент Source Outliner для Java?
- 21. Есть ли эквивалент Python для Java IdentityHashMap?
- 22. Есть ли Java-эквивалент для PHP get_declared_classes()?
- 23. Есть ли эквивалент Java для Python all()?
- 24. Есть ли эквивалент Java для libevent?
- 25. Есть ли эквивалент Java для LINQ?
- 26. Есть ли эквивалент java для OpenSSL bn_rand_range?
- 27. Есть ли эквивалент Java для getchar?
- 28. Есть ли эквивалент Java для .Net System.Data?
- 29. Есть ли эквивалент Java для excel vlookup?
- 30. Есть ли эквивалент класса C# для класса чисел Java?
Я собираюсь сравнить оба ответа, и мне, возможно, придется вручить его вам (CesarGon) ... кажется, что ваш лучше, потому что вы предлагаете решение, которое уже встроено в C#. – Kiril
Это справедливо, Лирик. :-) – CesarGon