比如,我创建了一个线程A,那么,我怎么实现,在一个按钮中暂停/继续 这个功能?用suspend,说什么已经过期了

解决方案 »

  1.   

     使用 Mutex、ManualResetEvent、AutoResetEvent 和 Monitor。 
     Thread th = new Thread(YourThread);
      th.Start();
    AutoResetEvent detailCollectedEvent = new AutoResetEvent(false);
            void YourThread()
            {
           
            }
      

  2.   

    现在不建议用 suspend 了,试试 WaitHandle
      

  3.   


    写出你的代码,看看怎么用suspend?
      

  4.   

    感谢各位的回复
    但是,能否给我一个完整一些代码呀?我要实现的功能是:一个主窗口中有三个按钮,一个按钮名字是:开始,另外一个按钮的名字是:暂停/继续最后一个按钮名字是:停止 然后,我想创建一个子进程A,然后,让进程A执行三个按钮的功能,同时,不会影响到winform的UI。请问该怎么做?现在困扰在,单击事件中无法找到A
      

  5.   

    实现代码中使用 sleep 函数
    按钮消息函数中用 thread.suspend 
      

  6.   

    把你创建的子线程设计成类成员。这样在类里都能访问到。
    又仔细看了你需求,暂停应该是根据你具体的设计,及时保存暂停时的数据。
    简单点用个标志位来处理就可以。
    _isSuspend = true(暂停)/false(继续)开始按钮:_workThread.Start();
    暂停按钮: _isSuspend = !_isSuspend;实际执行的方法体里(ThreadStart代理的方法)

    while(true)
    {
        if(_isSuspend)
        {
           //暂停处理
        }
        else
        {
           //继续处理
        }
        Thread.Sleep(50); //每50ms检查suspend}
      

  7.   

    恩,while(true) 只是一个举例,应该是有结束标志判断。