如何实现类似于BeginInvoke这样的函数,在指定线程上,调用委托
         我想创建一个自己的辅助线程,然后其他线程可以把委托发给这个线程又这个线程来执行.

解决方案 »

  1.   

    类似如下
    public delegate void Action();
            /// <summary>
            /// 执行异步过程
            /// </summary>
            /// <param name="beginAction">异步过程</param>
            /// <param name="endAction">同步过程</param>
            /// <param name="exceptionAction">处理异常</param>
            /// <param name="obj">同步对象</param>
            public static void ExecuteAsync(Action beginAction, Action endAction, Action<Exception> exceptionAction, ISynchronizeInvoke obj)
            {
                new Thread(new ThreadStart(
                    delegate()
                    {
                            if (beginAction != null)
                            {
                                beginAction();
                            }
                            if (endAction != null)
                            {
                                if (obj.InvokeRequired)
                                {
                                    obj.Invoke(endAction, null);
                                }
                                else
                                {
                                    endAction();
                                }
                            }
                    }
                    )).Start();
            }
      

  2.   

    你可能没有理解我的意思,你这个函数确实可以实现异步的功能,但是每次异步都是新创建一个线程执行,我想要实现的效果是,先创建好一个线程,这个线程专门用来执行别的线程发过来的委托,然后,其他线程调用类似于BeginInvoke这样的方法,把要执行的函数和参数发过来,在这个辅助线程上执行.
      

  3.   

    Create Message Window.
    Dispatcher.