日期:2014-05-17  浏览次数:20720 次

除了Invoke还有没有其它的主线程委托方式
有如下代码:
    
    public class ThreadClas
    {
        public void Start()
        {
           AutoResetEvent Are;
           Are = new AutoResetEvent(false);
           ThreadPool.QueueUserWorkItem(ThreadMethod, Are);
        }

        public delegate void ThreadEvent();

        public event ThreadEvent OnThreadExecute;

        private void ThreadMethod(object State)
        {
            AutoResetEvent Are = (AutoResetEvent)State;
            OnThreadExecute();//此处执行用户自定义事件
            Are.Set();
        }
    }

线程方法ThreadMethod当中调用了用户自定义事件OnThreadExecute,为了确保安全,我想把OnThreadExecute委托到主线程执行,但是当前类中没有定义任任何窗口控件,因此没法通过Invoke来实现,请问还有没有其它的方式

------解决方案--------------------
MSDNSynchronizationContext使用看这里