解决方案 »

  1.   

    1. 你不需要设置。而且.net4.0以后的版本,你设置了也没用,那两三个参数已经不像.net2.0那样起作用的。系统线程池根据许多情况、根据系统资源而自动调节,无需你去设置。2. 你这个问题有点大,过大了就无内涵,因此无法回答。总之是,线程调用的处理方法中尽量不要有循环、阻塞语句,最好在几十毫秒就结束,(按照你的情况)不要持续5秒钟以上也不结束。3. 那2台终端,是上位机的客户端。而128台设备,是上位机的服务器。因此它们没有什么直接的关系。那2台终端访问上位机的业务逻辑层接口,你先把它们自己的交互使用界面设计好再来研究开发问题。而上位机另外只是简单地(异步)轮询128台设备,是把自己作为客户端(1个客户端对应128个服务器)来设计的,功能很少容易设计,先要完成对设备的最简单的请求交互即可。
      

  2.   

    .net4.0的系统线程池的用户线程数是6万多(在32位机上是1千多,不过我一般使用64位机所生产环境),你不用设置它的参数。你不用把它设置为什么4、16、100之类的。设置了反而画蛇添足。
      

  3.   

    谢谢 devmiao
    我在这方面是小白。能不能讲具体点。
      

  4.   

    假设128台设备,它们是通过“串口转TCP/IP模块”实现与上位机电脑进行通讯。
    此时    设备端的串口转TCP/IP模块可以工作在
       1)“TCP客户端模式”:上位机调用connect这个socket函数实现向TCP/IP转串口模块发起连接,实现TCP客户端的功能。
    也可以工作在
       2)TCP服务器模式:上位机调用listen这个socket函数实现TCP服务器功能,即在一个特定端口等待ZLSN2002模块的连接。上位机工作在客户端模式,设备工作在服务器模式时,有什么优点?
      

  5.   

    同一个问题 为什么开这么多帖子......关于这个问题 我还是那句话 先做出来1个在说吧..什么线程池多线程异步这些对你来说都是天书甚至你连基本的tcpclient收发 也不会..更别说终端远程控制涉及到的自定义通讯协议(如果是我,我会定制一套完整的控制协议为了开发维护)而且你可能连并发是什么时候发生的,为什么会发生.以及发生的大小.概率这样的问题你都不知道.而且主要是 你连基本都流程都没有搞懂..实际你写的时候 你会发现 这个东西就是一个保存在server内存中的一个集合(dic<string,socket>),跟终端几个字节的数据来回转发而已然后就是一些判断 一些动作..根本不会涉及到你所谓的线程池..瞎画的 就是这个意思...
      

  6.   

    首先谢谢 diaodiaop。
    另外
       放假这几天恶补了C#网络编程,终于明白“线程池多线程异步编程”,明白了委托与回调。