线程默认的ThreadStart委托只能使用void方法,但是Thread有个扩展委托ParameterizedThreadStart,可以传递object类型。比如下面这个:

 1 publicstaticvoid ServerReceive(object parmas) 2 { 3     TcpParmater vals = parmas as TcpParmater; 4     IPAddress ServerIp = GetServerIP(); 5     IPEndPoint iep =new IPEndPoint(ServerIp, 10086); 6     socket =new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); 7     socket.Connect(iep); 8  9 byte[] byteMessage =newbyte[1024];10     socket.Bind(iep);11 while (true)12     {13 try14         {15             socket.Listen(5);16             Socket newSocket = socket.Accept();17             newSocket.Receive(byteMessage);18             newSocket.Send(byteMessage, byteMessage.Length, 0);19             TMessage message =new TMessage();20             message.IpAddr = newSocket.RemoteEndPoint.ToString();21             message.Msg = Encoding.Default.GetString(byteMessage);22             message.AddTime = DateTime.Now.ToShortTimeString();23             vals.todo(message);24         }25 catch26         {27         }28     }29 }

  

TcpParmater是我定义的一个类,用来存放参数,上面我还实例化了一个委托,因为需要在方法里插入一个方法

 1 publicclass TcpParmater 2 { 3 publicstring hostname; 4  5 ///<summary> 6 /// 接收数据后处理事件委托 7 ///</summary> 8 ///<param name="message"></param> 9 publicdelegatevoid dosomthing(TMessage message);10 11 public dosomthing todo;12 }

  

线程使用如下:

1  TcpParmater paras =new TcpParmater();2  paras.hostname ="192.168.100.102";3  paras.todo = show;4  Thread tclient =new Thread(new ParameterizedThreadStart(TcpSocket.ClientReceive));5  tclient.Start(paras);

我创建了一个对象paras,作为ClientReceive的参数。这样就OK了

这里其实有两个问题,1.线程传值(ParameterizedThreadStart解决),2.多参数问题(参数放到一个类里)。

转载于:https://www.cnblogs.com/405464904/archive/2011/09/03/2165515.html

线程里面添加参数,并解决多个参数问题[原创]相关推荐

  1. 粒子群(PSO)、量子粒子群(QPSO)优化LSTM网络超参数,以均方差为适应度,找出一组网络超参数,解决网络设置参数盲目性的问题

    粒子群(PSO).量子粒子群(QPSO)优化LSTM网络超参数,以均方差为适应度,找出一组网络超参数,解决网络设置参数盲目性的问题. 可用于负荷预测,风电功率预测,光伏发电预测等时序序列,matlab ...

  2. mysql limit 动态参数_MySQL中limit使用动态参数的解决方法(拼接SQL字符串语句来执行SQL)...

    官方好像说过limit已经在5.6版本上支持了动态参数,但是测试时依然还是不行. 那么要解决limit动态参数唯一能做的就是使用字符串SQL拼接的形式,然后再进行执行. 一般有以下方式解决: 1.存储 ...

  3. 【Tomcat】解决GET方式传递的参数(URL中的参数)乱码问题

    在Tomcat中(其它的webserver中也一样),参数可以通过GET和POST方式传递.通过GET和POST方式传递的参数,遇到乱码时的解决办法也不一样. 在Tomcat中遇到GET方式传递的参数 ...

  4. php访问参数错误,提示“无法访问参数错误”的4种解决方法

    直接拔下usb设备而不是点击弹出.直接拔下usb设备会损坏甚至破坏扇区,是导致usb设备参数错误的原因之一.切记尽量使用"安全弹出usb"功能. usb接口问题.usb接口是电脑和 ...

  5. mysql运维-sleep线程过多_MySQL sleep过多解决方法

    现状: 睡眠连接过多,会对mysql服务器造成什么影响? 严重消耗mysql服务器资源(主要是cpu, 内存),并可能导致mysql崩溃. 原因分析: 造成睡眠连接过多的原因? 1. 使用了太多持久连 ...

  6. php接受get参数乱码,如何解决php get 参数乱码问题,php中文乱码解决办法

    如何解决php get 参数乱码问题如何解决php参数乱码的问题,乱码php获取参数的解决方案:1.使用"iconv ('GB 2312 ',' UTF-8 ',$龚辉):"解决乱 ...

  7. jsr 正则验证_使用 Bean Validation 解决业务中参数校验

    痛点及现状 代码中常常见到如下代码: if (Objects.equal(0L ,repertory)){ return ApiResultMap.errorResult(-1 ,"操作数量 ...

  8. Eclipse启动慢分析及解决 / Eclipse启动参数整理

    前置条件:  发现Eclipse启动越来越慢,等待Android项目Libraries导入时各种红色的xx和小红斑看得人一阵鸡皮疙瘩--表示不能忍. 启动慢  Eclipse启动慢主要有两种现象:  ...

  9. esight添加设备失败,可能SNMP参数不正确,网管与网元之间通讯异常或防火墙配置错误

    故障现象: esight添加设备失败,报错,添加设备失败,可能SNMP参数不正确,网管与网元之间通讯异常或防火墙配置错误 解决方法: 1.检查snmp配置是否真确 2.在linux上使用telnet命 ...

  10. Python使用matplotlib可视化柱状图、坐标轴标签的符号(-)显示为了方框□□、设置rcParams参数配置解决

    Python使用matplotlib可视化柱状图.坐标轴标签的符号(-)显示为了方框□□.设置rcParams参数配置解决 目录

最新文章

  1. stm32IAP代码升级小结
  2. HAProxy 的负载均衡服务器,Redis 的缓存服务器
  3. VTK:网格之HyperTreeGridSource
  4. 确定windows系统是32bit还是64bit
  5. WordPress主题-Real Estate 7–房地产[更至v3.1.0]
  6. Spring事件机制Event源码解析(未完待续)
  7. 8.0.22Mysql的详细安装
  8. 【MySQL】MySQL RROR 3680 (HY000): Failed to create schema directory ‘db2019‘ (errno: 2 - No such file
  9. linker command failed with exit code 1 (错误总结)
  10. Atitit atttilax创造的新概念与模式 xaas xaaK
  11. CCS以及DSP入门帖
  12. 风险管理计划包括哪些内容
  13. vue jsonp跨域
  14. 什么是外网IP、内网IP?
  15. 移植waland/weston 到AM335X 在运行的时候运行不成功分析
  16. TRUNK理论与配置实验
  17. 我那牛逼老公,创业成功但最后被辞退,仍然一毛钱股份没有拿到……
  18. 软件开发的早期为何要进行可行性研究?该从哪几个方面研究目标系统的可行性?...
  19. ICASSP 2022 语音合成和语音识别简报
  20. ad19怎么手动布线_AD18/19自动布线之坑

热门文章

  1. 电脑键盘功能介绍_远程操控软件介绍
  2. 大专计算机学语数英理化生吗,学考11-13号报名啦!你知道语数英和政史地/物化生成绩有什么作用嘛?不懂你会后悔的!!...
  3. linux 代码获取当前路径,【linux】shell代码,获取当前路径,创建文件夹
  4. word在线解密_实用技能 | 5款免费在线转换PDF的网站
  5. mysql mtq_mysql基本操作 - osc_r3mtqivi的个人空间 - OSCHINA - 中文开源技术交流社区
  6. php ci项目总结,分享关于php CI框架使用的一点小总结
  7. gen_cam_par_area_scan_polynomial算子说明
  8. wordpress网站后台打开速度很慢解决方法?
  9. 一次完整的HTTP请求所经历的7个步骤
  10. 使用EntityFramework6连接MySql数据库(db first方式)