Pregunta

En mi aplicación WPF Compuesto tengo un evento que se publica cuando el usuario hace doble clic en un control. Módulos suscribirse al evento y realizar una acción cuando sea necesario.

Este evento ha dejado de funcionar de forma aleatoria. A veces, cuando corro la aplicación que pueda desencadenar el evento sin problemas, otras veces sólo pueden desencadenar un par de veces antes de que los módulos de dejar de recibir el evento.

Cuando miro en el depurador del EventAggregator CAL todavía tiene el evento, pero el evento no tiene suscripciones. ¿Cómo puede estar perdiendo EventAggregator suscripciones?

¿Fue útil?

Solución

Resulta que era el recolector de basura eliminación de las suscripciones. Voy a tener que leer sobre el funcionamiento interno, pero cuando reemplacé

this.mEventAggregator.GetEvent<SomeEvent>().Subscribe(SomeFunction);

con

this.mEventAggregator.GetEvent<SomeEvent>().Subscribe(
    SomeFunction, ThreadOption.UIThread, true);

que comenzó a trabajar. Los parámetros de la interfaz de usuario de hilo no era mi problema, pero para otros puede ser importante para asegurarse de que está manejando el caso en el hilo de la derecha también.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top