При работе с консольными приложениями Console.Readline прекращает обработку пользовательского интерфейса из основного потока и продолжается только при возникновении события, такого как нажатие кнопки ввода. Как мне воспроизвести эту функциональность (с формой окна в качестве пользовательского интерфейса в данном случае) в приложении формы Windows?
Вы не можете сделать это напрямую.
Однако вы можете сделать это, позвонив Invoke, как я описал здесь .
Invoke
Используйте form.ShowDialog () вместо form.Show ()
Это не остановит поток, но остановит пользователя от других действий в пользовательском интерфейсе до закрытия окна.
Теперь, когда вы объяснили, что вы хотите сделать ...
Было бы лучше использовать BackgroundWorker , поддерживать графический интерфейс активным, но отключенным и отображать индикатор выполнения + кнопку отмены, пока не будет сделано.