Главная страница
    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.01 c
15-1149225661
Ega23
2006-06-02 09:21
2006.06.25
Deep Purple Popurri


15-1149253449
Новичоккк
2006-06-02 17:04
2006.06.25
Правильно ли работаю с массивом сокетов?


6-1140017279
Evgenij_
2006-02-15 18:27
2006.06.25
Мак адрес


15-1149207948
dancer
2006-06-02 04:25
2006.06.25
У кого какие модемы?


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