Я создаю небольшой компонент для тестирования и сталкиваюсь с проблемой
В основном компонент является декоратором класса, который контролирует весь доступ к базе данных, он создает форму с двумя кнопками: «Имитация потерянного соединения» и «Переподключение». Нажмите кнопку, и вместо того, чтобы пропустить вызовы функций через обертку, вы получите красивое и простое NoConnectionException (), очень полезное для тестирования.
Проблема в том, что это конкретное приложение, когда оно обнаруживает потерянное соединение, вызывает модальное диалоговое окно "соединение потеряно!" который сидит там, пока соединение не будет восстановлено. Поскольку это модально, я не могу нажать свою изящную кнопку, чтобы симулировать восстановленную связь.
Поэтому мне нужно запустить мою маленькую форму тестирования в другом потоке. Я не совсем уверен, как это сделать. Я пытался
new Thread(
new ThreadStart(
(Action)delegate {_form.Start();}
)
).Start();
Но поток закрывается, как только метод возвращается, поэтому форма никогда не появляется, кроме как на мгновение.
Есть идеи, как мне добиться того, чего я хочу?