У меня есть эти два методыПроблемы с Multi-Threading
public void L1Timer()
{
Console.Clear();
int score = tot;
Console.Write("Chances : " + ch);
Console.CursorLeft = 40;
Console.Write("Marks : " + score);
for (int time = 0; time <= 100000; time++)
{
Console.SetCursorPosition(65, 0);
Console.Write("Time Elapsed : " + time + " Secs");
Console.CursorLeft = 40;
stime = time;
Thread.Sleep(1000);
Console.Beep();
//Level1();
}
}
public void Level1()
{
Console.WriteLine("\n\n");
Console.CursorLeft = 40;
Console.WriteLine("C _ _ E _ _ _ T _ _ N");
Console.WriteLine("\n\n");
tot = 0;
while ((tot <= 70) && (ch > 0))
{
Console.Write("Guess : ");
string gues = Console.ReadLine();
switch (gues)
{
case "E": tot += 10; ch--; L1Timer(); Level1(); break;
case "L": tot += 10; ch--; break;
case "B": tot += 10; ch--; break;
case "R": tot += 10; ch--; break;
case "A": tot += 10; ch--; break;
case "I": tot += 10; ch--; break;
case "O": tot += 10; ch--; break;
default: tot += 0; ch--; break;
}
Console.WriteLine();
}
}
Я хочу, чтобы выполнить первый метод первым, а затем приступить к выполнению второго с первым таймером метода все еще рассчитывает без задержки второго потока ... Я попытался это
Thread T1 = new Thread(new ThreadStart(L1Timer));
Thread T2 = new Thread(new ThreadStart(Level1));
T1.Start();
T2.Start();
но это не сработало так, как я хочу it..It excuted первый и второй, но забрал курсор на первый метод, который не позволит пользователю ввести во втором методе и ответьте на вопрос ... Pls поможет мне
Вы пригласив тупики путем доступа к консоли из различных потоков. – spender
Pls, что я могу сделать вместо ???? –
Вы должны изучить класс [BackgroundWorker] (http://msdn.microsoft.com/en-us/library/system.componentmodel.backgroundworker.aspx). У меня был [аналогичный вопрос] (http://stackoverflow.com/questions/1890518/wpf-multithreaded-progress-dialog) в работе с приложением WPF, которое может вам помочь. – Joe