c#多线程多个参数

  • 格式:pdf
  • 大小:34.82 KB
  • 文档页数:2

c#多线程多个参数

for (int i = 0; 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);

}

}

}

}