h” using namespace ZThread: us

Автор admin Среда, 24 июня 2009 11:32

h” using namespace ZThread: using namespace std: class SleepingTask : public Runnable { int countDown: int id: public: SleepingTask(int ident = 0) : countDown(5). id(ident) {} -SleepingTaskО { cout « id « ” completed” « endl: } friend ostream& operator«(ostream& os. const SleepingTask& st) { return os « “#” « st.id « “: ” « st.countDown; } void run() { while(true) { try { cout « *this « endl: if(–countDown == 0) return; Thread::sleep(100); } catch(Interrupted_Exception& e) { cerr « e.whatO « endl; } } } }: int mainO { try { ThreadedExecutor executor; for(int i = 0; i < 5; i++) executor.execute(new SIeepingTask(i)); } catch(Synchronization_Exception& e) { cerr « e.whatO « endl; } } ///:- Функция Thread::sleep() может запустить исключение Interrupted_Exception (прерывания рассматриваются далее); это исключение перехватывается в run(). Но если задача создается и выполняется в блоке try функции main(), перехватывающем объекты Synchronization_Exception (базовый класс для всех исключений ZThreads), нельзя ли просто игнорировать исключение в шп(), предположив, что оно перейдет в обработчик main()? Такое решен


Комментарии закрыты.