Прокрутка полосы прокрутки ConsoleApplication приводит к зависанию потока - PullRequest
1 голос
/ 26 мая 2011

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

Возможно, мне здесь не хватает чего-то важного, но я не могу понять, почему перемещение полосы прокрутки в окне консоли блокирует поток.

Воспроизвести очень просто:

Sub Main()
    Do
        Console.WriteLine(Now.ToString("O"))
        System.Threading.Thread.Sleep(1000)
    Loop
End Sub

Запустите его, и любое взаимодействие с окном блокирует поток.В приведенном ниже примере я просто немного передвинул полосу прокрутки и удерживал ее в положении несколько секунд, прежде чем выпустить

image http://www.briandrought.com/miscpics/scrollbar.png

Я пробовал ее с типом таймерацикл, а не Thread.Sleep, но появляется та же проблема.Что я делаю не так (кроме того, что не пользуюсь сервисом!)?

С уважением,

Брайан

1 Ответ

0 голосов
/ 26 мая 2011

Вы не делаете ничего плохого. Вот как ведут себя консольные приложения Windows. При нормальной работе ваши серверные приложения наверняка будут работать как автономные службы, поэтому в работе не должно быть проблем.

...