ここでは、各属性IDのxmlドキュメントを読み取って動的スレッドを生成しようとしていますが、特定の属性の関連要素である動的スレッドにパラメーターを渡す方法にパラメーターを送信する方法があるという問題に直面していますか?ご意見をお聞かせください
以下のスレッドでは、doworkメソッドを呼び出していますが、特定の属性IDの要素のパラメーターを渡す必要があります。どうすればよいですか?
static void Main(string[] args)
{
var currentDir = Directory.GetCurrentDirectory();
var xDoc = XDocument.Load(string.Format(Path.Combine(currentDir, "Hosts.xml")));
var threads = new List<Thread>();
foreach (XElement host in xDoc.Descendants("Host"))
{
var hostID = (int) host.Attribute("id");
var extension = (string) host.Element("Extension");
var folderPath = (string) host.Element("FolderPath");
var thread = new Thread(DoWork)
{
Name = string.Format("samplethread{0}", hostID)
};
thread.Start(new FileInfo
{
HostId = hostID,
Extension = extension,
FolderPath = folderPath
});
threads.Add(thread);
}
//Carry on with your other work, then wait for worker threads
threads.ForEach(t => t.Join());
}
static void DoWork(object threadState)
{
var fileInfo = threadState as FileInfo;
if (fileInfo != null)
{
//Do stuff here
}
}
class FileInfo
{
public int HostId { get; set; }
public string Extension { get; set; }
public string FolderPath { get; set; }
}
スレッド内で複数のパラメーターを受け取るメソッドを呼び出すにはどうすればよいですか。私はというメソッドを持っています
Send(string arg1, string arg2, string arg3)
それが、パラメータを渡すための解決策を皆さんに求めた理由です。ここで、私のスレッド化の方法論は動的な方法で設計されていることに注意してください。何か提案がありますか?