Обычно я создавал каждый поток для каждого действия, которое я хотел сделать многопоточным. Я делал это так:
private Thread threadForWycena;
private void someMethod() {
threadForWycena = new Thread(globalnaWycena);
threadForWycena.Start();
}
Затем, когда пользователь захотел закрыть один из графических интерфейсов, я проверял этот поток и, если он был включен, я отказывался закрывать его.
private void ZarzadzajOplatamiGlobalneDzp_FormClosing(object sender, FormClosingEventArgs e)
{
if (threadForWycena.IsAlive) {
MessageBox.Show("Wycena jest w toku. Zamknięcie okna jest niemożliwe.", "Brak wyjścia :-)");
e.Cancel = true;
}
}
Есть ли способ сделать это с помощью ThreadPool, чтобы я мог предотвратить закрытие окна и сказать пользователю, какой поток еще жив и что он делает?