我在主程序中调用了一个线程,先在要满足暂停,继续,停止该线程要求,我现在使用的是Suspend(),resume(),Abort()方法,可微软说这种方法已经过时,不推荐使用,另外我在暂停线程后再停止线程会报错,另外我想实现在执行停止前,先让线程暂停,然后弹出对话框,让用户确认是否停止,如果确认停止,则停止线程,否则继续。

解决方案 »

  1.   

    使用 Mutex、ManualResetEvent、AutoResetEvent 和 Monitor。 if(MessageBox.Show("确定要操作么", "提示", MessageBoxButtons.OKCancel) == DialogResult.OK)
    {
    }
    private Mutex m= new Mutex();  
            private bool bIsStopped; 
            private bool bSuspended; 
            private bool bStarted; 
            public void Suspend() 
            { 
                if (bStarted && !bSuspended) 
                { 
                    bSuspended = true; 
                    m.WaitOne(); 
                } 
            }