Encuentro que el modelo de eventos .NET es tal que a menudo generaré un evento en un hilo y lo escucharé en otro hilo. Me preguntaba cuál es la forma más limpia de organizar un evento desde un hilo de fondo en mi hilo de interfaz de usuario.
Según las sugerencias de la comunidad, he usado esto:
// earlier in the code
mCoolObject.CoolEvent+=
new CoolObjectEventHandler(mCoolObject_CoolEvent);
// then
private void mCoolObject_CoolEvent(object sender, CoolObjectEventArgs args)
{
if (InvokeRequired)
{
CoolObjectEventHandler cb =
new CoolObjectEventHandler(
mCoolObject_CoolEvent);
Invoke(cb, new object[] { sender, args });
return;
}
// do the dirty work of my method here
}