Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2002.01.31;
Скачать: [xml.tar.bz2];

Вниз

THREADS !!!   Найти похожие ветки 

 
iZEN   (2001-11-28 19:45) [16]

/**Evgeniy_S (28.11.01 16:13):
<...>
procedure THread.execute;
begin
//делаем что то долго, циклов тут нет...
end;
<...>
*/

А как поток узнает что он терминировался из другого места?
Так вот, где-то в execute() должна происходить проверка флага на остановку. Но, так как в коде execute() нет таких проверок, то и поток будет жить, пока не выйдет из execute(), то есть пока не выполнит свою задачу доконца.

Ввыход 1: создать второй поток (Watcher) и читать данные первого работающего потока без синхронизации, если возможно, или с синхронизацией обновляемых данных в критической секции. Но в этом случае, первый поток всё равно нельзя остановить, так как в execute() нет витков-циклов и он, как я понял со слов автора и сделал вывод, не может в любое время узнать о своём терминировании.

Выход 2: опять повторюсь, без call-back-оповещений работающего потока остановить его невозможно. И дело не в WinAPI.



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

Форум: "WinAPI";
Текущий архив: 2002.01.31;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.44 MB
Время: 0.004 c
14-100063
panov
2001-12-11 15:37
2002.01.31
Угадайте, очем речь?


6-100031
krimer
2001-11-08 13:50
2002.01.31
как проследить события для TSERVERSOCKET в консольном приложении?


14-100050
Orest
2001-12-05 22:28
2002.01.31
GifAnimator, ОЧЕНЬ НУЖНО!!!!!!!!!!!!!!!!!!!


6-100021
ZserG
2001-11-07 19:57
2002.01.31
как выкачать файл с ftp без NMFTP


3-99877
Олег Лаукарт
2001-12-25 11:07
2002.01.31
Query для каждого потока...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский