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

Потоки. WaitForSingleObject. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ DXDIAG http://www.cyberforum.ru/cpp-beginners/thread234489.html
подскажите!!!!!!!!я работаю с dev c++ строкой System("dxdiag"); я вызываю директикс.вопрос следующий:можно ли в нём перейти на пунк музыка,конечно при помощи языка програмирования.заранее большое...
C++ подключение к мыши подскажите я использую DEV C++ можноли как то подключится к мышке и допустим как то её отключить только сделать это из доса.заранее спасибо!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! http://www.cyberforum.ru/cpp-beginners/thread234476.html
C++ Приближенно вычислить интеграл от функции y=exp(-x) в заданном интервале, используя формулу прямоугольников
Выручите пожалуйста! Необходимо написать прогу на экзамен в крайне короткие сроки(желательно до завтра) Задание - Приближенно вычислить интеграл от функции y=exp(-x) в заданном интервале, используя...
C++ 00 в 20
Здравствуйте! Помогите мне, пожалуйста, понять в чём дело. Почему, если мы какой-то битовый файл переводим в текстовый и хоть что-нибудь в нём после перевода удаляем/меняем, то после этого все нули...
C++ Матрица 4-го порядка http://www.cyberforum.ru/cpp-beginners/thread234462.html
Ребята помогите пожалуйста, не могу решить. :wall: Даны три вещественные квадратные матрицы 4-го порядка. Напечатать ту из них,норма которой наименьшая (считать, что такая матрица одна). В...
C++ как работает цикл while Вопрос может и глупый... Но хотелось бы узнать точно.. Вообщем, есть класс-оболочка, который блокирует и освобождает ресурс.. Блокирует он в конструкторе, а освобождает в деструкторе... тогда такой... подробнее

Показать сообщение отдельно
sanya923
69 / 69 / 19
Регистрация: 26.01.2011
Сообщений: 160
27.01.2011, 18:21  [ТС]
Iron Bug, спасибо за совет.
Я попробовал исправить, но у меня чет как-то не вышло. Решил упростить задачу:
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
33
34
35
36
37
38
39
40
41
42
43
44
#include "stdafx.h"
#include <iostream>
#include "windows.h"
using namespace std;
 
HANDLE h1,h2;
HANDLE sp1;
 
DWORD WINAPI Thread1(LPVOID lpParam1)
{
    for (int i=0;i<100;i++)
    {
 
        WaitForSingleObject(sp1,INFINITE);
            cout<<"Potok "<<1<<endl;
            ReleaseSemaphore(sp1,1,NULL);
                     Sleep(30);
    }
    return 0;
}
 
DWORD WINAPI Thread2(LPVOID lpParam1)
 
{
    for (int j=0;j<100;j++)
    {
        WaitForSingleObject(sp1,INFINITE);
                         cout<<"Potok "<<2<<endl;
            ReleaseSemaphore(sp1,1,NULL);
        Sleep(5);
    }
    return 0;
}
 
VOID main()
{
    sp1=CreateSemaphore(NULL,1,1,NULL);
 
    h1 = CreateThread(NULL,0,Thread1,NULL,0,NULL);
    h2 = CreateThread(NULL,0,Thread1,NULL,0,NULL);
    
    int uo;
    cin>>uo;
}
Здесь два потока выводят свои номера. Учитывая, что у 2-го задержка меньше, то примерно через каждые пять выводов 2-го должен выводить 1-ый. Но выводит только первый.
Написал тоже самое в Delphi, всё работает, единственное как я уже говорил, я там потоки создаую по другому, но для синхронизации всё тоже самое использую.
Ни как не могу понять как тут это работает.

Добавлено через 10 минут
Всё нашел ошибку. При создании второго передаую Thread1/
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru