想做一个通讯的程序。原理就是利用Socket实例进行发送数据和接收数据。
假设现在有1000个点需要发送        private void timer1_Tick(object sender, EventArgs e)
        {
              Socket实例1发送请求信息(..);
              Socket实例1接收信息(..);              Socket实例2发送请求信息(..);
              Socket实例2接收信息(..);
               .
               .
               .
              Socket实例1000发送请求信息(..);
              Socket实例1000接收信息(..);
        }第一个问题:现在出现一个未知问题,我不清楚这个timer1跑一遍需要多长的时间。
我希望在10秒中之内可以完成。不知道行不行。
第二个问题:假设第一个问题10秒中之内不能完成工作,那我可不可以多设置几个Timer。如果可行,应该注意哪些问题。希望高手指点!!
感激不尽!!!!!

解决方案 »

  1.   

    用异步的Timer吧,看看这个例子:
    http://www.codeproject.com/KB/dotnet/ABTransClockArticle.aspx
      

  2.   

    采用异步处理方式
    你服务端发送数据肯定是在得到需要通讯的要求之后再开始发送的,也就是说,当服务器接收到数据后,对数据处理,然后定义ReceiveCallBack,在这里面进行消息回发。就不需要用timer了。
    客户端也是一样的道理,保持连接接收服务端回发的消息就可以了。
    我也是刚接触不久,可能说不太清楚,自己网上找点socket的例子看看吧。微软官方就有例子的。
      

  3.   

    上面说的不错 
    用异步效果会好点 
    因为假如你整个timer1_Tick 事件
    执行完成的时间超过了你设置的运行时间间隔
    那么肯定是达不到你的期望效果
      

  4.   

    用timer效果不大,因为那个服务器返回数据的时间不确定试试1楼说的异步
      

  5.   

    你在这个事件了就把timer停止了,等在函数末尾在把timer启动
      

  6.   

    你这个问题必须要用异步,用异步的话,虽然你的timer停止了,但是你的异步线程已经去执行了,并且是不会因为你停止timer而停止的
      

  7.   

    其实要是你不太理解多线程的话,可以用两个timer来实现你的效果...
      

  8.   

    你可以用线程啊!
    不是非要用timer吧!
      

  9.   

    Socket通讯不要用Timer  socket有监听http://topic.csdn.net/u/20080623/08/4bbd2475-45f1-42e3-a613-16b094759ade.html
      

  10.   

    每个socket实例都单独开一个线程?