C#封裝多個執行緒
今天專案需要同時通過TCP讀取六個外接設備發送的資料,如果把執行緒重復寫六次,就感覺代碼太多重復內容了,就想能不能將執行緒變成類似類的樣子,然后生成六個“執行緒類”的物件,然后將物件加入List中
一、構建“執行緒類”
代碼如下(示例):
//我前面已經創建了一個public static Dictionary<int, socket> Sockets;里面存放了六個socket
public class tasks_class
{
public int socket;
public power_task(int i)
{
socket = i;//讓這個執行緒負責第i個socket的通信
}
public double Read_power_task()
{
var res = Task.Run(() =>
{
return Sockets[socket].read_power();//read_power是自己寫的一個socket發送加讀取的函式
});
return res.Result;
}
}
二、創建“執行緒類”的物件
代碼如下(示例):
public List<power_task> tasks = new List<power_task>();//用來存放執行緒類的物件
void Read_power_task_list()
{
for (int i = 0; i < 6; i++)
{
tasks.Add(new power_task(i));
}
}
總結
最后就可以tasks[0].Read_power_task();這樣使用執行緒了
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/225427.html
標籤:其他
