if (hbThread3 != null)             //如果这个线程hbThread3已经启动
            {
                if (hbThread3.IsAlive)       //如果这个线程还存在,意思:这个任务还没有完成
                {
                    类_查看硬盘剩大小 实例化 = new 类_查看硬盘剩大小();
                    实例化.方法_获得磁盘空间大小();  //获得剩余空间大小,总空间大小,可用比率
                    if (实例化.hbFloat可以使用的百分比例 < 0.3)  //如果硬盘分区可用空间不足10%
                    {
                        hbThread3.Suspend();
                    }
                    else  //如果可用空间超过10%,则继续下载网页
                    {
                        if (hbThread3.ThreadState.ToString() == "Background, Suspended")
                        {
                            hbThread3.Resume();
                        }  
 
                    }
                }
            }

解决方案 »

  1.   

    重新排版一下if (hbThread3 != null)    //如果这个线程hbThread3已经启动
    {
       if (hbThread3.IsAlive)  //如果这个线程还存在
        {
           类_查看硬盘剩大小 实例化 = new 类_查看硬盘剩大小();
           实例化.方法_获得磁盘空间大小();     //获得剩余空间大小,总空间大小,可用比率
            if (实例化.hbFloat可以使用的百分比例 < 0.3) //如果硬盘分区可用空间不足30%
              {
                  hbThread3.Suspend();
               }
             else  //如果可用空间超过10%,则继续下载网页
                {
                   if (hbThread3.ThreadState.ToString() == "Background, Suspended")
                     {
                        hbThread3.Resume();
                      }  
     
                 }
        }
     }
      

  2.   

    对不起,忘记说问题了
    问题是
    hbThread3.Suspend();
    hbThread3.Resume();
    这个过时了
    不知道怎么改
    我搜索了一下互联网,说得不是很清楚
    主要是我不是程序员,只是写一些小工具而已.所以,我不理解monitor mutex怎么能替代Suspend(),Resume()?????
    我用一个timer不断的重复这个过程,然后来"暂停"和"继续"这个线程,我仅仅只需要这个简单的功能,不需要什么互斥锁之类的特性!!!!
    希望各位大人路过的,都给一个帮助!!!
    谢谢
      

  3.   

    我也不会用 nutex,应该补习一下了。楼主不是程序员还知道 thread,真是见多识广
      

  4.   

    没有办法
    我遇到骗子了
    程序上面花钱结果被人宰了,郁闷
    最近第一次接触到winform这一块编程,幸好有vs2005的可视化帮助,感觉难度不太大.web编程方面我只做过一个投票功能(基本上大家可以把我当初学者)
    至于多线程方面的
    我其实也懒得学习的,但是被逼,没有办法就硬着头皮看来十几本电子书!因为多线程感觉难多了,所以十几本相互印证起来看,居然懂了一点点皮毛,就这样子慢慢的,一个winform程序现在快到200k了....呵呵(生平第二次感到积少成多,第一次是在自己辛苦码字100万字的小说时)
    hbThread3.Suspend();
    hbThread3.Resume();
    本人跪拜各位高手!!!!!!我只要简单的就行了
    thread.sleep();对于我的程序不太实用,我希望有其他方法可以替代(因为我是A线程操作B线程),静态的方法可能会有操作错误线程的危险.....
    希望高手指点啊.......多谢
      

  5.   

    真的希望大家给予一点点帮助
    用复杂的monitor mutex lock也可以,主要是这些是防止线程数据死锁或者脏数据用的,我不知道他们怎么挂起和恢复线程...可能是我太笨,看书没有明白,难道他们三个可以挂起和恢复线程不成?
    sleep是静态方法,有什么办法可以发挥一点作用吗?
    因为我这个调用是在主类中调用,其他线程要调用就必须异步了,感觉特麻烦(异步,我最最头疼了)
    求大家给一个解决代码
    因为我这个是虚拟内存成为硬盘,所以我才利用wmi获得硬盘空间剩余,如果不是虚拟出的硬盘,我也不会这么编的,我可不想烧硬盘
      

  6.   

    addisjeams和putuo都是我注册的id
    希望看见的朋友给点思路
    我在qq上问了一个人
    他说在主线程里面即使用thread.sleep(),休眠的也未必是主线程.really?
    我觉得似乎不是这样子的......
      

  7.   

    他说在主线程里面即使用thread.sleep(),休眠的也未必是主线程.really
    ——————————————————
    我认为是对的
      

  8.   

    线程控件?
    我会去查一下资料,谢谢楼上的,最近忙一些事情,过几天结贴,putuo这个号只有那么点分了,这次都散完好了.不管最后能否修改成功,都先谢谢楼上的