线程里面添加参数,并解决多个参数问题[原创]
线程默认的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
线程里面添加参数,并解决多个参数问题[原创]相关推荐
- 粒子群(PSO)、量子粒子群(QPSO)优化LSTM网络超参数,以均方差为适应度,找出一组网络超参数,解决网络设置参数盲目性的问题
粒子群(PSO).量子粒子群(QPSO)优化LSTM网络超参数,以均方差为适应度,找出一组网络超参数,解决网络设置参数盲目性的问题. 可用于负荷预测,风电功率预测,光伏发电预测等时序序列,matlab ...
- mysql limit 动态参数_MySQL中limit使用动态参数的解决方法(拼接SQL字符串语句来执行SQL)...
官方好像说过limit已经在5.6版本上支持了动态参数,但是测试时依然还是不行. 那么要解决limit动态参数唯一能做的就是使用字符串SQL拼接的形式,然后再进行执行. 一般有以下方式解决: 1.存储 ...
- 【Tomcat】解决GET方式传递的参数(URL中的参数)乱码问题
在Tomcat中(其它的webserver中也一样),参数可以通过GET和POST方式传递.通过GET和POST方式传递的参数,遇到乱码时的解决办法也不一样. 在Tomcat中遇到GET方式传递的参数 ...
- php访问参数错误,提示“无法访问参数错误”的4种解决方法
直接拔下usb设备而不是点击弹出.直接拔下usb设备会损坏甚至破坏扇区,是导致usb设备参数错误的原因之一.切记尽量使用"安全弹出usb"功能. usb接口问题.usb接口是电脑和 ...
- mysql运维-sleep线程过多_MySQL sleep过多解决方法
现状: 睡眠连接过多,会对mysql服务器造成什么影响? 严重消耗mysql服务器资源(主要是cpu, 内存),并可能导致mysql崩溃. 原因分析: 造成睡眠连接过多的原因? 1. 使用了太多持久连 ...
- php接受get参数乱码,如何解决php get 参数乱码问题,php中文乱码解决办法
如何解决php get 参数乱码问题如何解决php参数乱码的问题,乱码php获取参数的解决方案:1.使用"iconv ('GB 2312 ',' UTF-8 ',$龚辉):"解决乱 ...
- jsr 正则验证_使用 Bean Validation 解决业务中参数校验
痛点及现状 代码中常常见到如下代码: if (Objects.equal(0L ,repertory)){ return ApiResultMap.errorResult(-1 ,"操作数量 ...
- Eclipse启动慢分析及解决 / Eclipse启动参数整理
前置条件: 发现Eclipse启动越来越慢,等待Android项目Libraries导入时各种红色的xx和小红斑看得人一阵鸡皮疙瘩--表示不能忍. 启动慢 Eclipse启动慢主要有两种现象: ...
- esight添加设备失败,可能SNMP参数不正确,网管与网元之间通讯异常或防火墙配置错误
故障现象: esight添加设备失败,报错,添加设备失败,可能SNMP参数不正确,网管与网元之间通讯异常或防火墙配置错误 解决方法: 1.检查snmp配置是否真确 2.在linux上使用telnet命 ...
- Python使用matplotlib可视化柱状图、坐标轴标签的符号(-)显示为了方框□□、设置rcParams参数配置解决
Python使用matplotlib可视化柱状图.坐标轴标签的符号(-)显示为了方框□□.设置rcParams参数配置解决 目录
最新文章
- stm32IAP代码升级小结
- HAProxy 的负载均衡服务器,Redis 的缓存服务器
- VTK:网格之HyperTreeGridSource
- 确定windows系统是32bit还是64bit
- WordPress主题-Real Estate 7–房地产[更至v3.1.0]
- Spring事件机制Event源码解析(未完待续)
- 8.0.22Mysql的详细安装
- 【MySQL】MySQL RROR 3680 (HY000): Failed to create schema directory ‘db2019‘ (errno: 2 - No such file
- linker command failed with exit code 1 (错误总结)
- Atitit atttilax创造的新概念与模式 xaas xaaK
- CCS以及DSP入门帖
- 风险管理计划包括哪些内容
- vue jsonp跨域
- 什么是外网IP、内网IP?
- 移植waland/weston 到AM335X 在运行的时候运行不成功分析
- TRUNK理论与配置实验
- 我那牛逼老公,创业成功但最后被辞退,仍然一毛钱股份没有拿到……
- 软件开发的早期为何要进行可行性研究?该从哪几个方面研究目标系统的可行性?...
- ICASSP 2022 语音合成和语音识别简报
- ad19怎么手动布线_AD18/19自动布线之坑
热门文章
- 电脑键盘功能介绍_远程操控软件介绍
- 大专计算机学语数英理化生吗,学考11-13号报名啦!你知道语数英和政史地/物化生成绩有什么作用嘛?不懂你会后悔的!!...
- linux 代码获取当前路径,【linux】shell代码,获取当前路径,创建文件夹
- word在线解密_实用技能 | 5款免费在线转换PDF的网站
- mysql mtq_mysql基本操作 - osc_r3mtqivi的个人空间 - OSCHINA - 中文开源技术交流社区
- php ci项目总结,分享关于php CI框架使用的一点小总结
- gen_cam_par_area_scan_polynomial算子说明
- wordpress网站后台打开速度很慢解决方法?
- 一次完整的HTTP请求所经历的7个步骤
- 使用EntityFramework6连接MySql数据库(db first方式)