Обычно я создавал каждую нить за действие, которое я хотел сделать многопоточным. Я делаю это так:Есть ли способ проверить, что работает в пуле .NET Thread?
private Thread threadForWycena;
private void someMethod() {
threadForWycena = new Thread(globalnaWycena);
threadForWycena.Start();
}
Затем, когда пользователь хочет закрыть одну из ГИП я была проверка на эту тему, и если это было на мне было dissalowing, чтобы закрыть его.
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, так что я могу предотвратить закрытие окна и я могу сказать пользователю, какой поток все еще жив, а что он делает?
Так что на самом деле это сложнее, если использовать его без пула. Просто задайтесь вопросом, будет ли он выглядеть «ламе» для использования многих «частных потоков threadForWycena;» (конечно, с другим именем вместо пула. Мне легче узнать, что происходит, что работает, а что нет. функция запуска не запускается снова, пока не закончится старая. – MadBoy