¿Hay un C# equivalente a Java CountDownLatch?¿Hay un C# equivalente a CountDownLatch de Java?
Respuesta
El .NET Framework versión 4 incluye la nueva clase System.Threading.CountdownEvent.
Aquí es una implementación simple (de 9 Reusable Parallel Data Structures and Algorithms):
Para construir un pestillo de cuenta atrás, que acaba de inicializa su contador de n, y tienen cada tarea subordinada atómicamente decremento por uno cuando termina , , por ejemplo, rodeando la operación de decremento con un candado o con una llamada a Enclavamiento.Decreto. Luego, en lugar de una operación de toma, un subproceso podría disminuir y esperar para que el contador se convierta en cero; cuando se despierte , sabrá que n señales se han registrado con el pestillo. En lugar de girar en esta condición, como en while (count! = 0), por lo general es una buena idea dejar que el hilo de espera bloquee, en cuyo caso tendrá que usar un evento.
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. ¿Hay un Java equivalente a MISRA C?
- 2. ¿Hay un equivalente a memcpy() en Java?
- 3. ¿Hay un equivalente a Groovy en C#?
- 4. ¿Hay un C# equivalente a File.separator en Java
- 5. ¿Hay un Java equivalente a libevent?
- 6. ¿Hay un C# equivalente a IsDebuggerPresent()?
- 7. ¿Hay un C++ equivalente a getcwd?
- 8. ¿Hay un equivalente a typedef en C#?
- 9. C# Equivalente a Java IdentityHashMap
- 10. ¿Hay un equivalente Java de InvalidOperationException de C#?
- 11. ¿Hay un equivalente Java de frexp?
- 12. ¿Hay un C++ equivalente al BigDecimal de Java?
- 13. ¿Hay un destructor de C++ equivalente en Java?
- 14. ¿Hay un equivalente del método de Java igual en C++?
- 15. ¿Hay un equivalente en C# para este código de Java?
- 16. C# equivalente a los mkdirs de Java()
- 17. ¿Hay un equivalente de ucwords en java
- 18. C++ equivalente a System.arraycopy de Java
- 19. ¿Hay equivalente epoll en Java?
- 20. ¿Hay un equivalente de C# de m_nCmdShow?
- 21. C# equivalente a Thread.setDaemon de Java?
- 22. C# equivalente a Exception.printStackTrace() de Java?
- 23. ¿Hay un equivalente a java @SuppressWarnings en JSP
- 24. C++ Equivalente a BlockingQueue de Java
- 25. ¿Hay un equivalente de str_replace en C++?
- 26. ¿Hay un equivalente Java para LINQ?
- 27. ¿Cómo puedo "cancelar" un CountDownLatch?
- 28. Objetivo C equivalente a Java ArrayList
- 29. ¿Equivalente a las interfaces Java en C++?
- 30. Equivalente a C# ObservableCollection en Java
Voy a comparar ambas respuestas y es posible que deba adjudicartela (CesarGon) ... parece que la tuya es mejor, porque ofreces una solución integrada en C#. – Kiril
Eso es justo, Lirik. :-) – CesarGon