public T Invoke <T, T1, T2, T3>(Func <T1, T2, T3, T> action, T1 arg1, T2 arg2, T3 arg3) { var a = new PlayDispatcherAction(action, arg1, arg2, arg3); if (OnDispatcherThread) { this.thread.CheckIn(); a.Invoke(); this.thread.CheckIn(); return((T)a.ReturnValue); } this.actions.Enqueue(a); return((T)a.Wait()); }
public T Invoke <T>(Func <T> action) { var a = new PlayDispatcherAction(action); if (OnDispatcherThread) { this.thread.CheckIn(); a.Invoke(); this.thread.CheckIn(); return((T)a.ReturnValue); } this.actions.Enqueue(a); return((T)a.Wait()); }
public void Invoke(Action action) { var a = new PlayDispatcherAction(action); if (OnDispatcherThread) { this.thread.CheckIn(); a.Invoke(); this.thread.CheckIn(); } else { this.actions.Enqueue(a); a.Wait(); } }
public void BeginInvoke(Action action) { var a = new PlayDispatcherAction(action); this.actions.Enqueue(a); }