我想寫一個將有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