5 Ekim 2017 Perşembe

thread thread_interrupted Sınıfı - exception

Giriş
Thread'i durdurmak isteyen bir başka thread şöyle yapar.
t.interrupt();
Örnek
Thread kodunda bunu yakalamak için şöyle yaparız.
try
{
  ...
}
catch (const boost::thread_interrupted&)
{
  ...
}
Örnek
Eğer şöyle yaparsak belirtilen blok içinde bu exception fırlatılmaz.
try {
  ...
  {
    boost::this_thread::disable_interruption di;
    do_something();
  }
} catch (boost::thread_interrupted& e) {
  ...
}
Eğer şöyle yaparsak exception'ı tekrar fırlatılabilir hale getiririz
// resetting interruption
try
{
  ...
  boost::this_thread::interruption_point();
  ...
}
catch (const boost::thread_interrupted&){
  ...
}
Örnek
Kendimiz fırlatmak istersek şöyle yaparız.
throw boost::thread_interrupted();

Hiç yorum yok:

Yorum Gönder