今写一程序,需要对一站点发送web请求,而有可能该站点对这种有所限制。因此需要过一段时间暂停一下然后再继续。操作都在一个线程里,因此我想用获取当前时间分钟数字,能被5整除就挂起一分钟,然后继续。请问怎么解决这个问题?用sleep吗?又怎么唤醒呢。sleep具体写在哪不清楚。还是用别的方法??对于线程操作不是很了解。希望大家出手襄助,多谢

解决方案 »

  1.   

    Thread.Sleep(100);
    就是对当前线程暂停100毫秒,你只有一个线程,用此方法即可。
    线程Sleep后不用唤醒,时间一到继续执行。
      

  2.   

    参看这篇文章提到的方法
    http://blog.csdn.net/Knight94/archive/2006/08/24/1111267.aspx
      

  3.   

    用了sleep但是好象不醒来了,不知道是不是写错了,我写在主线程里
      

  4.   

    clsSp sp = new clsSp(strU1, intC1);     
                Thread th = new Thread(sp.GetSource);
                th.Start();            if ((System.DateTime.Now.Minute % 5) == 0)
                    {                   MessageBox.Show("wait 65 seconds please.");
                       Thread.Sleep(65000);
                       
                    }//是这样写么?还是应该写在sp.GetSource()里?
      

  5.   

    你最好去msdn看看Thread.Sleep什么意思再去使用
      

  6.   

    应该写到sp.GetSource()中去,这样,暂停的只是该线程
      

  7.   

    好象写在GetSource中也不行,是不是Getsource一定要和这一段代码 在同一个类中才行呢?
      

  8.   

    你的Getsource是怎么写的?? 不会是运行完就退出了吧??
      

  9.   

    Getsource()里的操作比较复杂,有一大堆调用,循环、判断、存储数据。我写的是一个爬虫,爬那网上的链接。程序一下子也不可能运行完,估计有上十万条。这样应该怎么写呢
      

  10.   

    要过一段时间就得sleep一下,不知道怎么写,写哪
      

  11.   

    sp.getsource是类里面的方法?这样可以运行吗?start()调用的是thread的run方法,无论怎样,对
    线程的操作,都应该在run方法内实现....也就是你类sp内的run方法体内.而sp.getsource也应该在run 内调用.
      

  12.   

    th.suspend()写个Timer控制停止时间
      

  13.   

    你说是单线程,
    那么你想在哪个位置暂停,在满足暂停条件时用 Thread.Sleep(1000);这里面单位为毫秒。if ((System.DateTime.Now.Minute % 5) == 0)
    {
       Thread.Sleep(65000);
    }这个语句要放到线程里,而且这个线程要是循环的,即每次循环都检查是否分钟数为5的倍数。
    而且你要确定你每次循环不会超过1分钟,否则就有可能不会执行暂停语句。
      

  14.   

    SLEEP个人感觉不好用,不大好操纵,你可以试用线程挂起和恢复
    函数名我记不得了,但是感觉那个比较简单明了
      

  15.   

    Thread th = new Thread(.......
    th.Start();
    暂停事件:
    th.Suspend();
    继续
    th.Resume();
      

  16.   

    wait()
    个人认为sleep() 不能满足要求 可以阻塞当前线程,直接用户暂停时的其它线程运行完成,再进行callback
     因为你需要暂停当前线程的目的一般来说是要执行其它线程的操作,你不可能为了停而停吧??
    如果只是暂停线程好玩,就用sleep() ===============================
    http://cache.monocn.com
      

  17.   

    忘记结贴了,多谢大家帮忙。sleep还是有用的,只是测试的时候因为暂停后还有比较多的操作,因此以为没有停下来,把时间加大以后效果才明显一些。