Birisi, aşağıdaki kodu değiştirerek iş parçacığı arasındaki özel durumları aktarmak için Boost istisna kitaplığını nasıl kullanabileceğine dair basit ancak tam bir örnek gösterebilir mi?C++ Yükseltme Örneği Konu arasında bir istisna atma örneği Örnek
Uyguladığım şey basit bir çok iş parçacıklı Delegate modelidir.
class DelegeeThread
{
public:
void operator()()
{
while(true)
{
// Do some work
if(error)
{
// This exception must be caught by DelegatorThread
throw std::exception("An error happened!");
}
}
}
};
class DelegatorThread
{
public:
DelegatorThread() : delegeeThread(DelegeeThread()){} // launches DelegeeThread
void operator()()
{
while(true)
{
// Do some work and wait
// ? What do I put in here to catch the exception thrown by DelegeeThread ?
}
}
private:
tbb::tbb_thread delegeeThread;
};
Vay canına ... posttan 10 saat sonra ve kimse cevap vermedi mi? sorumu kötü bir şekilde mi söyledim, yoksa bu sorun mu zor? – sivabudh
Uygulamanıza ne derseniz, beklediğiniz şey olmayabilir. DelegeeThread, diğer iş parçacığında bir istisna tetiklemek istediğinde, Yetkilendiren ilgisiz bir çalışma yürütecektir veya zaten sona erdirilmiş olabilir, bu nedenle yakalama gecikebilir veya hiç gerçekleşmeyebilir. – asveikau
emin, bahsettiğiniz noktaya katılıyorum. – sivabudh