Esempio n. 1
0
        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());
        }
Esempio n. 2
0
        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());
        }
Esempio n. 3
0
        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();
            }
        }
Esempio n. 4
0
        public void BeginInvoke(Action action)
        {
            var a = new PlayDispatcherAction(action);

            this.actions.Enqueue(a);
        }