Вниз
Скачать: CL | DM;

Сколько раз можно вызывать SetEvent?   Найти похожие ветки 

← →
Aleksandr ©   (2004-05-05 17:36) [0]

Эвент создается
CreateEvent(nil, True, False,PArr[i]), где PArr[i] - PChar, имя эвента. Затем он передается потоку, и поток резюмируется, на окончании своего Execute делая SetEvent данному хэндлу (поток, создавший событие, дожидается его установки). Но поток может быть резюмирован несколько раз, соответственно, он несколько раз будет устанавливать событие. А такое вообще можно?


← →
Digitman ©   (2004-05-05 17:44) [1]


> А такое вообще можно?


почему нет ?


← →
Aleksandr ©   (2004-05-05 18:46) [2]

Ну, мало ли, просто не знаю. Вдруг какие-то ограничения на то, сколько раз можно устанавливать события. Я, например, понятия не имею, что там за параметры переданы при создании события. Просто из сампла выдернул, а потом и задумался, а не приведет ли это к чему неприятному...


← →
Digitman ©   (2004-05-05 18:55) [3]


> а не приведет ли это к чему неприятному


нет, не приведет, не волнуйся

главное - анализируй рез-т вызова SetEvent() - он тебе подскажет куда дальше ехать


← →
Aleksandr ©   (2004-05-05 19:16) [4]

Да? Я даже и не думал, что там результат как-то анализировать надо...


← →
Polevi ©   (2004-05-06 08:08) [5]

его всегда надо анализировать, если только в документации не указано что "ф-ия всегда возвращает 0" к примеру


← →
Digitman ©   (2004-05-06 08:54) [6]


> Aleksandr ©   (05.05.04 19:16) [4]
> Да? Я даже и не думал, что там результат как-то анализировать
> надо...


здрасть ! а на что тогда функции существуют вообще ? ведь на то они и ф-ции, чтобы возвращать некий результат ..


← →
han_malign ©   (2004-05-06 09:15) [7]

>на окончании своего Execute...
>... поток может быть резюмирован несколько раз
- может я чего не понимаю, но если поток завершился, то "резюмирование" не поможет

>анализируй рез-т вызова SetEvent()
- единственное на что можно напороться, так это на ERROR_INVALID_HANDLE, если объект("эвент") не создан или уже освобожден

З.Ы. А по поводу "окончании своего Execute" - есть TThread.WaitFor... Thread.Handle сам по себе является сигнальным объектом, по завершении приходя во "взведенное" состояние.


← →
han_malign ©   (2004-05-06 09:21) [8]

>понятия не имею, что там за параметры переданы при создании события
- финиш - можно было и не распинаться - человеку даже Help влом прочитать...

>Вдруг какие-то ограничения на то, сколько раз можно устанавливать события.
- как думаешь, сколько раз можно булевской переменной присвоить true, может какие ограничения есть?



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.024 c
4-1081167785
Sapsi
2004-04-05 16:23
2004.05.23
О сенд мессадж


1-1083938188
united
2004-05-07 17:56
2004.05.23
MessageDlg по-русски - как?


11-1069253620
Alexander Kolesnikov
2003-11-19 17:53
2004.05.23
oracle


14-1083240236
arp
2004-04-29 16:03
2004.05.23
Личные сайты


11-1071470891
DSP
2003-12-15 09:48
2004.05.23
загрузка файла в CheckBox




   Наверх