我想写一个将有2个线程的程序。一会下载另一个会解析下载的文件。棘手的部分是我不能同时使用2个解析线程,因为它使用库技术来解析文件。请帮助一个建议。谢谢。C#并行线程但彼此控制
Foreach(string filename in filenames)
{
//start downloading thread here;
readytoparse.Add(filename);
}
Foreach(string filename in readytoparse)
{
//start parsing here
}
我结束了以下逻辑
bool parserrunning = false;
List<string> readytoparse = new List<string>();
List<string> filenames= new List<string>();
//downloading method
Foreach(string filename in filenames)
{
//start downloading thread here;
readytoparse.Add(filename);
if(parserrunning == false;
{
// start parser method
}
}
//parsing method
parserrunning = true;
list<string> _readytoparse = new List<string>(readytoparse);
Foreach(string filename in _readytoparse)
{
//start parsing here
}
parserrunning = false;
是否有你需要使用两个单独的线程的原因?如果您将工作细分为多个非UI线程,似乎您认为该任务将更快完成,而这不一定是最好的逻辑。 为什么不使用单个非UI线程,并让该线程完成所有下载,然后进行所有解析? – furkle 2014-10-26 16:12:35
你需要一个基本的并行性教程。许多方法都是可能的,所有这些方法都已被多次覆盖。 – usr 2014-10-26 16:14:03
我已经完成了该代码。该代码很慢。它需要5个小时。我想尽量减少它 – 2014-10-26 16:14:27