Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Потоки.События.Не могу разобраться - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Циклические алгоритмы. Сложное условие завершения цикла http://www.cyberforum.ru/cpp-beginners/thread1115866.html
Помогите написать программу на языке с++ (borland c++) задача 22. Правила Форума: 5.18 Запрещено размещать задания и решения в виде картинок и других файлов с их текстом.Перепечатывайте задание...
C++ Создать класс Мебель Создать класс Mebel, содержащий следующие элементы: - поле «производитель» char* Vendor; - поле «материал» char* Material; - метод получения производителя char* GetVendor(); - метод... http://www.cyberforum.ru/cpp-beginners/thread1115857.html
C++ Поправить переменные в программе
Добрый вечер, уважаемые программисты. Есть программа для подсчёта математических уравнений, но там разные переменные и я никак не могу их соединить вместе, что бы всё работало. Очень буду благодарен...
Печать в строку C++
Доброго времени суток. Подскажите пожалуйста, как в плюсах печатать в строку? Допустим у нас есть строка: char command; и во время работы программы она формируется (строка нужна для прямой...
C++ Могу ли я использовать несколько констант? http://www.cyberforum.ru/cpp-beginners/thread1115823.html
Возник такой вопрос, могу ли я сразу несколько констант объявить в программе и использовать их все в одной операции ? Вот написал программу которая перевод рубли в доллары и наоборот, как сделать,...
C++ Не работает цикл for Всем привет! Необходимо было написать реализацию RSA, однако возникли проблемы с циклом for: for (i=2; i<=funcN; i++) if ((evklid(i,funcN) == 1) and (fmod(i,funcN) != 0)) k_open = i; ... подробнее

Показать сообщение отдельно
VASYA_A
2 / 2 / 0
Регистрация: 11.09.2013
Сообщений: 129

Потоки.События.Не могу разобраться - C++

10.03.2014, 23:18. Просмотров 386. Ответов 4
Метки (Все метки)

Здравствуйте . Пытался разобраться с синхронизацией нитей , а точнее- с событиями . Нашёл пример :
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include "stdafx.h"
#include <windows.h>
#include <stdio.h>
HANDLE hEvent1, hEvent2;
int a[5];
HANDLE hThr;
unsigned long uThrID;
void Thread( void* pParams )
{ 
    int i, num = 0;
    while (1)
    { 
        WaitForSingleObject( hEvent2, INFINITE );
        for (i=0; i<5; i++) a[i] = num;
        num++;
        SetEvent( hEvent1 );
    }
}
 
int main( void )
{ 
    hEvent1=CreateEvent( NULL, FALSE, TRUE, NULL );
    hEvent2=CreateEvent( NULL, FALSE, FALSE, NULL );
    hThr=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)Thread,NULL,0,&uThrID);
    while(1)
    {
        WaitForSingleObject( hEvent1, INFINITE );
        printf("%d %d %d %d %d\n", a[0], a[1], a[2], a[3], a[4]);
        SetEvent( hEvent2 );
    }
    return 0;
}
Не могу понять , как он работает
Когда запускаю- происходит бесконечный вывод 5-ти цифр
Разве так и должно быть?

Росталкуйте , пожалуйста , что происходит вот в этом фрагменте :
C++
1
2
3
4
5
6
while(1)
    {
        WaitForSingleObject( hEvent1, INFINITE );
        printf("%d %d %d %d %d\n", a[0], a[1], a[2], a[3], a[4]);
        SetEvent( hEvent2 );
    }
сколько читаю- не пойму никак(
заранее спасибо!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru