Cómo obtener un contexto de sincronización o programar WinForm en un hilo de WinForm
-
30-10-2019 - |
Pregunta
Tengo una aplicación WinForm y una configuración observable como esta:
Form form = new Form();
Label lb = new Label();
form.Controls.Add(lb);
Observable.Interval(TimeSpan.FromSeconds(1))
.Subscribe(l => lb.Text = l.ToString());
Application.Run(form);
Esto no funciona, desde el l => lb.Text = l.ToString()
No se ejecutará en el hilo principal que creó el formulario, pero no puedo entender cómo hacer que se ejecute en este hilo. Supongo que debería usar IObservable.SubscribeOn
que toma un IScheduler
o SynchronizationContext
, pero no sé cómo obtener la sincronización context del hilo principal, y los únicos programadores que pude encontrar fueron las propiedades estáticas de Scheduler
, como Scheduler.CurrentThread
, Immediate
, NewThread
, TaskPool
y ThreadPool
, ninguno de los cuales funcionó.
Mi versión RX es 1.0.10621.
No hay solución correcta
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow