Así que he leído en torno a que en lugar de llamar a un evento directamente con¿Los controladores de eventos no están seguros?
if (SomeEvent != null)
SomeEvent(this, null);
que debería estar haciendo
SomeEventHandler temp = SomeEvent;
if (temp != null)
temp(this, null);
¿Por qué es esto así? ¿Cómo se convierte la segunda versión en un hilo seguro? cual es la mejor practica?
Al leer las respuestas tentativas y calificadas aquí, tengo la sensación de que el manejo de eventos en C# está estrechamente vinculado, propenso a errores y no se entiende muy bien. – micahhoover