Здравствуйте, r_v_s, Вы писали:
__>можно ли преобразовать System.Threading.Thread к WaitHandle?
__>если нет, то как возможно сделать ожидание завершения нескольких потоков?
Thread.Join имхо
Ed.ward
... << RSDN@Home 1.0 beta 7a >>
Здравствуйте, r_v_s, Вы писали:
...WaitHandle — это класс пространства имен System.Threading, выступающий в качестве управляемой оболочки для синхронизационных объектов в Windows. Его производными классами являются Mutex, AutoResetEvent и ManualResetEvent. При вызове WaitOne для объекта или мьютекса вы вызываете метод, унаследованный от WaitHandle. WaitAny и WaitAll — это статические методы, позволяющие потоку ожидать нескольких (на большинстве платформ до 64) мьютексов или событий одновременно. Они предоставляют управляемым приложениям те же возможности, что и функция WaitForMultipleObject Windows API — обычным приложениям...
Здравствуйте, r_v_s, Вы писали:
__>можно ли преобразовать System.Threading.Thread к WaitHandle?
__>если нет, то как возможно сделать ожидание завершения нескольких потоков?
...Ниже вызывающий поток блокируется, пока не будет установлен один из объектов AutoResetEvent в массиве syncobjects:
AutoResetEvent are1 = new AutoResetEvent(false);
AutoResetEvent are2 = new AutoResetEvent(false);
AutoResetEvent are3 = new AutoResetEvent(false);
...
WaitHandle[] syncobjects = new WaitHandle[3]{are1, are2, are3};
WaitHandle.WaitAny(syncobjects);
Если вместо WaitAny задействовать WaitAll, поток блокируется, пока не будут установлены все AutoResetEvent:
WaitHandle.WaitAll(syncobjects);
WaitAny и WaitAll также имеют версии, принимающие значения тайм-аутов. Тайм-ауты могут быть выражены как целые(миллисекунды) или как значения TimeSpan.
А прервать поток, ожидающий сикнализации, синхронизационных объетов, позволяет метод Interrupt класса Thread. Он генерирует исключение ThreadInterruptedException в потоке, для которого он вызван. Interrupt работает только для ожидающих, спящих или приостановленных потоков; если вызвать его для незаблокированного потока, поток будет прерван, когда заблокируется в следующий раз...
Здравствуйте, SubZero2000, Вы писали:
Откуда цитирование, если не секрет?
... << RSDN@Home 1.0 beta 6a >>