¿Cómo puedo actualizar la interfaz de usuario cuando Observable.Context no está disponible?

StackOverflow https://stackoverflow.com/questions/1957438

  •  21-09-2019
  •  | 
  •  

Pregunta

Tengo una aplicación WinFrom, utilice el método síncrono para descargar cadena a partir de una URL, y el uso de Rx ToAsync Método para que sea asíncrono y obtener el resultado observable, y cuando el resultado se lo muestro en el formulario.

Ayer, he actualizado Rx a la última versión, y dijeron que "observable no contiene una definición de contexto". Probé comentario esta línea, los códigos inició una excepción que "operación de la Cruz-hilo no válido: Control 'tbx_Reference' se accede desde un subproceso distinto del subproceso que se creó el".

Quiero mostrar el resultado asíncrono utilizando Subscribe método. ¿Como puedo solucionar este problema? muchas gracias.

public static IObservable<TResult> DoWorkAsync(TParameter parameter,
        Func<TParameter,TResult> actionSync)
    {
        Observable.Context = SynchronizationContext.Current;

        Func<TParameter, IObservable<TResult>> ActionAsync =  actionSync.ToAsync();

        IObservable<TResult> results = from result in ActionAsync(parameter)
                                       select result;

        return results;
    }
¿Fue útil?

Solución

Para su sentencia de retorno, intente:

return results.ObserveOnDispatcher();
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top