public async Task <object> Invoke(object input) { HiddenForm pumper = new HiddenForm(); Thread pumpThread = new Thread(delegate() { Application.Run(pumper); }); pumpThread.SetApartmentState(ApartmentState.STA); pumpThread.Start(); return(new { subscribe = (Func <object, Task <object> >)(async(i) => { pumper.Subscribe((Func <object, Task <object> >)i); return null; }) }); }