Hoy tuve que arreglar algunos viejos códigos de VB.NET 1.0 que están usando hilos. El problema era actualizar los elementos de la interfaz de usuario del hilo de trabajo en lugar del hilo de la interfaz de usuario. Me llevó algo de tiempo descubrir que puedo usar aserciones con InvokeRequired para encontrar el problema.Cómo escribir código seguro/correcto de subprocesos múltiples en .NET?
Además del problema de la modificación concurrente mencionado anteriormente, existen puntos muertos, las condiciones de carrera, etc. uno puede encontrarse. Como depuración/fijación de los problemas de roscado es un dolor, me pregunto cómo podría reducir la codificación de errores/fallos en esta área y cómo podía más fácil encontrar a ninguno de ellos. Por lo tanto, lo que estoy pidiendo, es:
- ¿Hay buenas pautas a seguir a la hora de escribir código multiproceso? ¿Cuáles son las cosas qué hacer y qué no hacer?
- ¿Qué técnicas utiliza para depurar problemas de roscado?
Proporcione un código de ejemplo si corresponde y posible. Las respuestas deben estar relacionadas con .NET Framework (cualquier versión).
"pero no lo hacen olvida que el código entra en una especie de estado cuántico "- * suspiro * Conozco muy bien ese problema. –