using System.Collections.Generic;
using System.Diagnostics;
using System.Threading.Tasks;
public static void Main()
List<string> equipments = new List<string>();
equipments.Add("192.168.0.12");
equipments.Add("192.168.0.13");
equipments.Add("192.168.0.14");
equipments.Add("192.168.0.11");
foreach(var equipment in equipments) {
List<RegisterMap> registers = new List<RegisterMap>();
FriendlyName = equipment + ":Value 1",
FriendlyName = equipment + ":Value 2",
FriendlyName = equipment + ":Value 3",
A.AddMaster(equipment, 502, registers);
private static List<Task> _tasks = new List<Task>();
private static List<MBTCPMaster> _masters = new List<MBTCPMaster>();
public static void AddMaster(string ipAddress, int port, List<RegisterMap> registers)
Console.WriteLine("IN AddMaster : " + ipAddress + " " + registers[0].FriendlyName + "\n");
_tasks.Add(Task.Factory.StartNew(() =>
_masters.Add(new MBTCPMaster().Connect(ipAddress, port).SetRegisters(registers));
private string _hostname = string.Empty;
private List<RegisterMap> _registersToRead;
public MBTCPMaster SetRegisters(List<RegisterMap> registerList)
Console.WriteLine(" IN SetRegisters : " +_hostname + " " + registerList[0].FriendlyName + "\n");
_registersToRead = registerList;
public MBTCPMaster Connect(string hostname, int port)
_registersToRead = new List<RegisterMap>();
public struct RegisterMap
public string FriendlyName;