¿Cómo puedo actualizar la interfaz de usuario cuando Observable.Context no está disponible?
-
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;
}
Solución
Para su sentencia de retorno, intente:
return results.ObserveOnDispatcher();