次のように複数のクライアントを同時に処理するために、以前に Parallel.ForEach 機能を使用しました。
Clients objClient = new Clients();
List<Clients> objClientList = Clients.GetClientList();
Parallel.ForEach<Clients>(objClientList, list =>
{
SendFilesToClient(list);
});
しかし今、Client クラスを作成する代わりに、次のようにクライアント オブジェクトを動的に作成することにしました。
var xDoc = XDocument.Load(new StreamReader(xmlPath + @"\client.xml"));
dynamic root = new ExpandoObject();
XmlToDynamic.Parse(root, xDoc.Elements().First());
dynamic clients = new List<dynamic>();
for (int i = 0; i < root.clients.client.Count; i++)
{
clients.Add(new ExpandoObject());
clients[i].Id = root.clients.client[i].id;
clients[i].Name = root.clients.client[i].name;
List<string> list = new List<string>();
for (int j = 0; j < root.clients.client[i].emails.email.Count; j++)
{
list.Add(root.clients.client[i].emails.email[j].ToString());
}
clients[i].Email = string.Join(",", list);
}
Client クラスを使用せずにオブジェクトを動的に生成するようになったので、Parallel.ForEach 機能を使用して、クラス オブジェクトを使用する前に行っていたように、Dynamic Object 内の複数のクライアントを同時に処理するにはどうすればよいでしょうか?
私が自分自身を明確にしたことを願っています。
また、私のアプローチに何か問題があるかどうか教えていただければ幸いです。または、これを行うためのより良い方法を教えてください。