В моей программе у меня есть 2 темы, первый постоянно работает while (isRunning) {
Thread.Sleep без замораживания пользовательского интерфейса для Framework 2.0
и для второго способа резьбы, мне это нужно, чтобы спать в течение минуты, пока его истинный. Проблема, с которой я сталкиваюсь, с моим текущим кодом заключается в том, что я получаю Not Responding
для своей программы в диспетчере задач.
Как исправить это, обратите внимание, что я использую Framework 2.0.
private void initialize() {
MyWeb.connectToServer();
commandThread = new Thread(checkForCommandThread); // The thread that I need not to freeze the program
commandThread.Start();
}
private void checkForCommandThread() {
while (isRunning) {
Thread.Sleep(10000);
// while this thread is sleeping, the program should not be frozen
// do the work here, after the sleep
}
}
Возможно, вы ищете что-то вроде: http://stackoverflow.com/questions/15341962/how-to-put-a-task-to-sleep-or-delay-in-c-sharp-4-0 – Habib
Вам нужно * не * блокировать поток пользовательского интерфейса. – Servy
Это для более высоких платформ, но подробно обсуждает вашу проблему. http://stackoverflow.com/questions/16819447/alternative-to-thread-sleep-in-windows-form-apart-from-timer –