zoukankan      html  css  js  c++  java
  • c# 多线程多个参数

    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);
    }
    }
    }
    }

  • 相关阅读:
    django 1.9.7 css控制模板样式
    python -- 判断给定的参数是否是地理位置的经度和纬度
    有恃无恐
    不知不觉
    vscode 编写Python走过的坑
    Python的从头再来
    【初赛】数学题错题总结
    【初赛】选择题总结
    20175317 《Java程序设计》第四周学习总结
    20175317 《Java程序设计》第三周学习总结
  • 原文地址:https://www.cnblogs.com/dqh123/p/11568942.html
Copyright © 2011-2022 走看看