int main setlocale LC_ALL Russian HANDLE threads for int threads Creat

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
int main()
{
setlocale(LC_ALL, "Russian");
HANDLE threads[N];
for (int i = 0; i < N; i++){
threads[i] = CreateThread(NULL, //Серия атрибутов безопасности; если NULL, то они по умолчанию
0, //Размер (в байтах) стека создаваемого потока(DWORD);если 0, то принимает размер стека главного потока
(LPTHREAD_START_ROUTINE)ThreadProc, //указатель на процедуру, с которой следует начать выполнение потока
(LPVOID)i, //аргумент процедуры, переданной предыдущим аргументом
0, //Флаги создания(например, можно создать приостановленный поток (CREATE_SUSPENDED), а затем запустить его с помощью ResumeThread)
NULL); //Адрес переменной типа DWORD, в случае успешного выполнения возвращает идентификатор потока, созданного потока
}
WaitForMultipleObjects //ждет, когда массив объектов, хэндл которого был передан первым аргументом, перейдет в сигнальное состояние
(N, //размер массива
threads, //указатель на массив хэндлов
TRUE, //Если аргумент равен TRUE, процедура ждет перехода в сигнальное состояние всех объектов, иначе — любого из указанных объектов
INFINITE); //время ожидания в миллисекундах
for(int i = 0; i < N; i++){
CloseHandle(threads[i]); //закрывает дескриптор потоков
}