2010-11-26 20 views

Respuesta

15

Semánticamente no hay diferencias, sin embargo, el uso de controladores de eventos estáticos puede (si no tiene cuidado) provocar pérdidas de memoria. Ver this article para más información.

Me he encontrado con este problema yo mismo, tratando de usar un controlador de eventos estático para mantener una fuente de datos de toda la aplicación actualizada; el controlador de eventos impedía que mis componentes BindingSource se eliminaran, lo que ocasionó todo tipo de problemas extraños ...

+0

+1 para la advertencia, @Bradley. ¿No debería simplemente cancelar su suscripción al evento antes de 'Dispose()'? – IAbstract

+1

@dboarman Sí, eso sería esencial. Para cualquier cosa que no implemente 'IDisposable', debe tener mucho cuidado ... Probablemente sea una buena práctica asegurarse de que los suscriptores a eventos estáticos, siempre, lo implementen. ¡Asegúrate también de que tu objeto sea eliminado! (ese me ha descubierto antes) –

+0

De acuerdo ... los eventos estáticos se deben usar con atención al detalle. – IAbstract

4

Efectivamente ninguno. Todo lo que significa es que cuando el controlador es estático, no habrá this en el alcance (como con todos los métodos estáticos).

Cuestiones relacionadas