Мой профессор дал мне этот полу-псевдокод. Он сказал, что я должен найти ошибку где-то в логике этого кода. На данный момент я ничего не могу найти, что может быть неправильным. Не могли бы вы дать мне несколько намеков о том, что может быть неправильным? Я не прошу ответа, потому что я хотел бы найти его сам, но некоторые намеки на то, в каком направлении я должен выглядеть, были бы замечательными.Многопоточная программная логика
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);
}
}
}
Параллельный доступ к переменной? –
Я задал этот вопрос, и все ответы были выше, я думаю, что это отличный стиль вопроса. Это на самом деле весело. –
Спасибо всем за ответы и ваше время, что вы потратили ответы и пытались мне помочь! Я обязательно рассмотрю все, что вы указали! Благодаря! – Martin