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

Вниз

Как получить ссылку на работающий Thread имея его ID   Найти похожие ветки 

 
slaga ©   (2006-03-24 14:22) [0]

Добрый день.

У меня есть ThreadID, мне нужно остановить, закрыть, удалить этот поток, как мне получить такую возможность ?

Заранее спасибо.


 
Leonid Troyanovsky ©   (2006-03-24 14:24) [1]


> slaga ©   (24.03.06 14:22)  

> У меня есть ThreadID, мне нужно остановить, закрыть, удалить
> этот поток, как мне получить такую возможность ?


OpenThread.
Непонятно, только, что значит закрыть,
да, впрочем, и зачем.

--
Regards, LVT.


 
slaga ©   (2006-03-24 14:27) [2]

спасибо,
а вот такая конструкция не подойдет ?

 PostThreadMessage(ThreadID, WM_CLOSE, 0, 0)


 
Leonid Troyanovsky ©   (2006-03-24 14:32) [3]


> slaga ©   (24.03.06 14:27) [2]

> а вот такая конструкция не подойдет ?

>  PostThreadMessage(ThreadID, WM_CLOSE, 0, 0)


Потоку принято посылать WM_QUIT.
Оно может и подойти, если, конечно, у него
есть message loop.

--
Regards, LVT.


 
slaga ©   (2006-03-24 14:32) [4]

хм. а можна небольшой пример по использованию OpenThread (с подключаемыми модулями)


 
slaga ©   (2006-03-24 14:40) [5]

нашел такое:

function OpenThread(dwDesiredAccess: DWord; bInheritHandle: Bool;
dwThreadId: DWord): DWord; stdcall; external "kernel32.dll";

но не понимаю что с этим делать потом :(


 
Leonid Troyanovsky ©   (2006-03-24 15:25) [6]


> slaga ©   (24.03.06 14:40) [5]
> нашел такое:

> function OpenThread(dwDesiredAccess: DWord; bInheritHandle:
>  Bool;
> dwThreadId: DWord): DWord; stdcall; external "kernel32.dll";
>


Это оно и есть (правда,  результат принято возвращать как THandle ).
Константы dwDesiredAccess можно посмотреть в топике
http://groups.google.com/group/fido7.ru.delphi/browse_frm/thread/60e9dcc14ee5febe/18d621d0da3a07d7?#18d621d0da3a07d7

--
Regards, LVT.


 
slaga ©   (2006-03-24 16:03) [7]

а в каком модуле описывается THREAD_ALL_ACCESS


 
Игорь Шевченко ©   (2006-03-24 16:47) [8]


> а в каком модуле описывается THREAD_ALL_ACCESS


Windows.pas ?


 
Leonid Troyanovsky ©   (2006-03-24 16:54) [9]


> slaga ©   (24.03.06 16:03) [7]

> а в каком модуле описывается THREAD_ALL_ACCESS


В том обсуждении приводились значения

From JwaWinnt.pas available from http://delphi-jedi.org
(Win32 API Package in the API Library section):

THREAD_TERMINATE            = ($0001);
 {$EXTERNALSYM THREAD_TERMINATE}
 THREAD_SUSPEND_RESUME       = ($0002);
 {$EXTERNALSYM THREAD_SUSPEND_RESUME}
 THREAD_GET_CONTEXT          = ($0008);
 {$EXTERNALSYM THREAD_GET_CONTEXT}
 THREAD_SET_CONTEXT          = ($0010);
 {$EXTERNALSYM THREAD_SET_CONTEXT}
 THREAD_SET_INFORMATION      = ($0020);
 {$EXTERNALSYM THREAD_SET_INFORMATION}
 THREAD_QUERY_INFORMATION    = ($0040);
 {$EXTERNALSYM THREAD_QUERY_INFORMATION}
 THREAD_SET_THREAD_TOKEN     = ($0080);
 {$EXTERNALSYM THREAD_SET_THREAD_TOKEN}
 THREAD_IMPERSONATE          = ($0100);
 {$EXTERNALSYM THREAD_IMPERSONATE}
 THREAD_DIRECT_IMPERSONATION = ($0200);
 {$EXTERNALSYM THREAD_DIRECT_IMPERSONATION}

 THREAD_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED or SYNCHRONIZE or $3FF);
 {$EXTERNALSYM THREAD_ALL_ACCESS}

 SYNCHRONIZE              = ($00100000);
 {$EXTERNALSYM SYNCHRONIZE}

--
Regards, LVT.


 
slaga ©   (2006-03-24 16:55) [10]

в Windows.pas нет.

мне подсказывают что можно вот так:

const
 THREAD_ALL_ACCESS = $1F03FF;


 
Leonid Troyanovsky ©   (2006-03-24 16:56) [11]


> Игорь Шевченко ©   (24.03.06 16:47) [8]

> Windows.pas ?


Т.е.,  D7+ ?

--
Regards, LVT.


 
Игорь Шевченко ©   (2006-03-24 17:52) [12]

Leonid Troyanovsky ©   (24.03.06 16:56) [11]

Я же знак вопроса поставил :)



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

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

Наверх




Память: 0.47 MB
Время: 0.026 c
15-1148881568
Ega23
2006-05-29 09:46
2006.06.25
С Днём рождения! 29 мая


2-1149773285
Zikmu
2006-06-08 17:28
2006.06.25
Нумерация строк


6-1139889800
Интересующийся
2006-02-14 07:03
2006.06.25
Как поставить и прочитать кук при помощи TServerSocket?


4-1143230385
Eraser
2006-03-24 22:59
2006.06.25
Установка криптопровайдеров


1-1147788452
Neo Trinitron
2006-05-16 18:07
2006.06.25
Грамотная обработка ошибки





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский