我的教授給了我這個半僞代碼。他說我應該在這段代碼的邏輯中找到一處錯誤。目前我找不到任何東西,可能是錯的。你能給我一些關於什麼可能是錯誤的提示嗎?我並沒有要求回答,因爲我想自己找到答案,但是我應該看到什麼方向的一些提示會很棒。多線程程序邏輯
class Program
{
int progressValue = 0;
int totalFiles = 0;
int i = 0;
bool toContinue = true;
void MasterThread()
{
Thread thread1 = new Thread(Worker1);
Thread thread2 = new Thread(Worker2);
Thread progressThread = new Thread(ProgressThread);
thread1.Start();
thread2.Start();
progressThread.Start();
}
void Worker1()
{
string[] files = Directory.GetFiles(@"C:\test1");
totalFiles += files.Length;
foreach (string file in files)
{
Encryption.Encrypt(file);
i++;
progressValue = 100 * i/totalFiles;
}
toContinue = false;
}
void Worker2()
{
string[] files = Directory.GetFiles(@"C:\test2");
totalFiles += files.Length;
foreach (string file in files)
{
Encryption.Encrypt(file);
i++;
progressValue = 100 * i/totalFiles;
}
toContinue = false;
}
void ProgressThread()
{
while (toContinue == true)
{
Update(progressValue);
Thread.Sleep(500);
}
}
}
併發訪問變量? –
我給了這個問題,所有的答案upvote,我認爲這是一個偉大的問題風格。這實際上很有趣。 –
謝謝大家的回答和你花在回答和嘗試幫助我的時間!我一定會研究你指出的所有事情!謝謝! – Martin