как остановить текущий процесс приложения C # и запустить другую функцию - PullRequest
0 голосов
/ 03 октября 2011

Я объясняю свой сценарий, у меня есть функция, которая печатает от 1 до 10000 во время печати, я должен остановить процесс и дать пользователю знать текущее значение i, и, если пользователь нажмет ввод, оно должно продолжиться снова.

я использую

if ((Console.KeyAvailable) && (Console.ReadKey(true).Key == ConsoleKey.Escape))

но это не работает, чтобы усложнить мою задачу. Я использую потоки, даже если мне удастся разорвать этот поток, дочерний поток начнет выполняться, я просто хочу на мгновение остановить весь процесс выполнения и выполнить другую функцию.

Ответы [ 2 ]

0 голосов
/ 03 октября 2011

Если вы используете темы.Вы можете использовать этот вид кода ..

// Start
thread = new Thread(new ThreadStart(YourCommand));
thread.Start();

// Pause
if (thread != null)
{
thread.Suspend();
}

//Continue
if (thread != null)
{
thread.Resume();
}

//Alive
if (thread != null)
{
    if (thread.IsAlive)
    {
     thread.Abort();
    }    
}

Или вы можете использовать таймер ....

0 голосов
/ 03 октября 2011

Проверьте класс BackgroundWorker , в частности, как реализовать отмену.

В основном вам нужно будет проверить внутри цикла, ожидает ли отмена отмены. Если это так, выйдите из цикла.

...