Я запускаю новый поток (рабочий) в пользовательской форме, когда этому потоку нужно что-то обновить в пользовательской форме, затем вызываю метод Invoke - вызывать делегат метода в основном потоке. Проблема в том, насколько успешно закрыть пользовательскую форму. Мне нужен первый раз конечный рабочий поток fini sh, из этого потока время называется основным потоком (Invoke). Как в основном потоке ждать, пока рабочий поток не завершится sh последний l oop.
Форма пользователя
public partial class FormMain : Form
{
private bool isntSignaledStop=true;
...
Вот метод al oop, который выполняется в рабочем потоке.
private void MenuLoop()
{
while (isntSignaledStop)
{
HeavyMethod();
Invoke(DelegateWriteResultsToMenu);
HeavyMethod2();
Invoke(DelegateWriteResultsToMenu2);
...
}
}
Основной поток в конце установлен isntSignaledStop = False. Теперь мне нужно дождаться окончания рабочего потока.