目前有很多设备的端口,系统需要定时的取得各个端口的状态数据。
现在在下的想法是,开多线程且用多个timer来定时(每个端口定时取数据的时间不一样)。不知道这种方法是否可行,或者有更好的解决方案。
感谢大家帮助!:)

解决方案 »

  1.   

    一个线程定时扫描设置sleep(参数)
    不用timer.
    如果用timer,也可以不用thread
      

  2.   

    1.用Thread 
    Thread thread = new Thread(new ThreadStart(process));
    thread.Start();process()
    {
      while(1)
     { 
       //处理扫描端口状态
       sleep(5000);//5秒扫描一次
     }
    }
    2.Timer
    在Timer事件中
    调用process()函数,process()函数如下;
    process()
    {
       //处理扫描端口状态
     }
    3.上面的方式也可以利用线程来处理
    在Timer事件中使用线程如下:
    Thread thread = new Thread(new ThreadStart(process));
    thread.Start();process函数如下:
    process()
    {
       //处理扫描端口状态
     }
      

  3.   

    这种方法是可以的,System.Threading.Timer 类对于多线程操作时安全的。
    每个线程可以用Sleep方法在不扫描的时候休眠来减少消耗。
      

  4.   

    线程和Timer都用应该可以解决你的问题
    用线程去监听端口,Timer去计算监听间隔时间
    通过线程间传值,将Timer计算出的时间传给线程
      

  5.   

    线程和Timer都用应该可以解决你的问题
    用线程去监听端口,Timer去计算监听间隔时间
    通过线程间传值,将Timer计算出的时间传给线程我的想法就是这样,就是不知道如何实现。