for (int i = 0; i <count; i++) //根据选择的串口号数量创建对应数量的线程
{
thread = new Thread(new ParameterizedThreadStart(Run));
thread.Name = Convert.ToString(i);
thread.IsBackground = true; //将线程转为后台线程
thread.Start(GetPortNames[i]); //传入串口号
}

public void Run(object serialName)
{
ConnectParams[] comm =null;
sp1 = new SerialPort();
sp1.PortName = serialName.ToString();//设置串口名
sp1.BaudRate = 19200; //波特率
sp1.DataBits = 8; //数据位
sp1.StopBits = StopBits.One;//停止位
sp1.Parity = Parity.None; //校验位
sp1.DtrEnable = true;//准备就绪
sp1.RtsEnable = true;
sp1.ReadTimeout = 1000;//设置数据读取超时为1秒
DevType = "流量计";
var cnn = new ConnectParams();
cnn.portName = sp1.PortName;
cnn.ComStarte = starte;
DataTable dt = new DataTable();
dt.Columns.Add("sp1.PortName", typeof(object));
dt.Columns.Add("ComStarte", typeof(object));
//dt.Columns.Add("SerialPort", typeof(object));
DataRow dr1 = dt.NewRow();
try
{

if (sp1.IsOpen)
{
sp1.Close();
}
sp1.Open();
if (sp1.IsOpen)
{
// starte = "打开";
dr1[0] = sp1.PortName;
dr1[1] = "打开";
//dr1[2] = sp1;
//dt.Rows.Add(dr1);
// comm = ConnectParams.GetComToDevParamsList(null, sp1.PortName, sp1.BaudRate, 0, starte);
}
//else
//{
// dr1[1] = "关闭";
// //dt.Rows.Add(dr1);
//}

}
catch (Exception ex)
{
sp1.Close();
starte = "关闭";
dt.Rows.Add(dr1);
//comm = ConnectParams.GetComToDevParamsList(null, sp1.PortName, sp1.BaudRate, 0, starte);
return;
}

this.Invoke((EventHandler)delegate
{
dt.Rows.Add(dr1);
dataGridView1.DataSource = dt;
});

}

2. 多个参数

using System;
using System.IO;
using System.Text;
using System.Threading;

namespace ConsoleApp7
{
class Program
{
static void Main(string[] args)
{
for (int i = 0; i < 10; i++)
{
MyThread myThread = new MyThread();
myThread.id = i + 1;
myThread.name = "张三" + i;
myThread.money = 1000 + i;
Thread thread = new Thread(myThread.ThreadMain);
thread.Start();
}
Console.ReadLine();
}

public class MyThread
{
public int id { set; get; }
public int money { set; get; }
public string name { set; get; }

public void ThreadMain()
{
int threadId = Thread.CurrentThread.ManagedThreadId;
Console.WriteLine("线程ID {0} {1} {2} {3}", threadId, id, money, name);
}
}
}
}

转载于:https://www.cnblogs.com/dqh123/p/11568942.html

c# 多线程多个参数相关推荐

  1. Python多任务(多线程执行带有参数的任务,利用threading创建线程时传入参数--args参数和kwargs参数)

    1.多线程执行带有参数的任务 以元组形式传参 以字典方式进行传参       (字典的key值和参数名要一致) 2.线程的注意点 线程之间执行是无序的 主线程会等待所有的子线程执行结束再结束 如果要主 ...

  2. .NET多线程编程(7)——C#多线程编程传递参数解决方案

    在写多线程时候往往委托思路方法不能传递参数但是我就遇到了个问题线程委托思路方法必须要传递参数我有多个线程而多个线程所注册思路方法体基本上都是样只有几个变量值不样我也不想写什么思路方法.        ...

  3. 多线程小结-----线程参数和 Invoke 机制

    不需要传递参数,也不需要返回参数 我们知道启动一个线程最直观的办法是使用Thread类,具体步骤如下 ThreadStart threadStart=new ThreadStart(Calculate ...

  4. c# 多线程 调用带参数函数

    线程操作主要用到Thread类,他是定义在System.Threading.dll下.使用时需要添加这一个引用.该类提供给我们四个重载的构造函数(以下引自msdn). Thread (Paramete ...

  5. 多线程中线程参数的传递,不要使用局部变量

    { ThreadPara para; (void*)&para 传递给另一个线程 } para 是局部变量,线程使用时可能已被销毁,应使用ThreadPara* para=new Thread ...

  6. c++中多线程传递参数原理分析

    线程可以共享进程的内存空间,线程拥有自己独立内存. 关于参数的传递,std::thread的构造函数只会单纯的复制传入的变量,特别需要注意的是传递引用时,传入的是值的副本,也就是说子线程中的修改影响不 ...

  7. 改mysql修改界定符_dbvisualizer参数设置

    6.13 可否完全禁用数据编辑? 可以. 方法: 在文本编辑器里打开文件 DBVIS-HOME/resources/dbvis-custom.prefs. 找出 dbvis.disabledataed ...

  8. C++ 多线程教程及实现方法

    该博文为原创文章,未经博主同意不得转载,如同意转载请注明博文出处 本文章博客地址:https://cplusplus.blog.csdn.net/article/details/105009766 多 ...

  9. OpenCV使用pthread实现多线程加速处理图像(C++)

    OpenCV使用pthread实现多线程加速处理图像 [尊重原创,转载请注明出处]https://blog.csdn.net/guyuealian/article/details/81912704 目 ...

最新文章

  1. pytorch android
  2. java list 删除 遍历_Java list利用遍历进行删除操作3种方法解析
  3. 禁用内存清理_MySql那些事儿(二):InnoDB架构介绍之内存篇
  4. 移动端 fixed 固定按钮在屏幕下方,然后按钮被键盘顶上来...顶上来了有没有~
  5. C语言中关于字符数组输入,scanf没执行
  6. 绘图python_Python绘图
  7. 用css实现透明度的方法
  8. java被oracle收购,sun被oracle收购了,openoffice和virtualbox会不会死?
  9. 基于Java的项目开发过程
  10. (2) 怎么学习IFC (Industry Foundation Class)
  11. 2020-12-27
  12. pandas-综合练习
  13. 【Autosar 存储栈Memery Stack 3.存储读写流程的要求与时序】
  14. python单片机编程入门先学什么_编程入门必看:带你零基础了解编程和编程语言,入门应该学什么?...
  15. 一次服务器上g1回收器发生fullgc的粗浅理解与记录
  16. JPA——API介绍、完成JPA的CRUD操作、JPQL完成复杂查询操作
  17. 齐振宏教授 变革领导力导师
  18. 社区医生工作平台-体检软件
  19. 现代互联网网络拓扑的简单描述
  20. java 集成grizzly_获得swagger-core 1.5与Jersey和Grizzly合作

热门文章

  1. 大型电子商务网站架构之--分布式可扩展数据库架构
  2. java判断一个类是否公共类
  3. openfire 服务器配置 php 添加ssl
  4. [转]NYOJ-511-移动小球
  5. 有线路由器与无线路由器混合使用
  6. 什么是COM[网摘]
  7. 请问生产成本收集器与标准成本评估有什么关联?
  8. 如何实现拼音与汉字的互相转换
  9. callable函数 stride的意义 Math.round(),Math.ceil(),Math.floor()用法
  10. MySQL创建数据库时指定编码和用户授权