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