К Т П           План занятия                                                              1                                           Страницы  | 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 | | 8 | | 9 |

5. Псевдодескрипторы потоков

Иногда потоку требуется знать свой дескриптор, чтобы изменить какие-то свои характеристики. Например, поток может изменить свой приоритет. Для этих целей в Win32 API существует функция GetCurrentThread, которая имеет следующий прототип:
  HANLDE GetCurrentThread(VOID);
и возвращает псевдодескриптор текущего потока. Псевдодескриптор текущего потока отличается от настоящего дескриптора потока тем, что он может использоваться только самим текущим потоком и, следовательно, может наследоваться другими процессами. Псевдодескриптор потока не нужно закрывать после его использования. Из псевдодескриптора потока можно получить настоящий дескриптор потока, для этого псевдодескриптор нужно продублировать, вызвав функцию DuplicateHandle.

В листинге 3.5 приведен пример программы, которая вызывает функцию GetCurrentThread, а затем выводит на консоль полученный псевдодескриптор.

#include <windows.h>
#include <iostream.h>

int main()
{
HANDLE hThread;

// получаем псевдодескриптор текущего потока
hThread = GetCurrentThread();
// выводим псевдодескриптор на консоль
cout << hThread << endl;

cin.get();

return 0;
}

 


Предыдущая        В начало страницы       Следующая
5