Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/21: Рейтинг темы: голосов - 21, средняя оценка - 4.57
0 / 0 / 2
Регистрация: 22.02.2011
Сообщений: 76

Потоки, события

25.04.2013, 14:11. Показов 3892. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет всем. Есть задача, считать с формы команду(beign, pause) и в зависимости от нажатой кнопки запустить, либо приостановить потоки. Приостановление потоков нужно реализовать событиями, и я немного не понимаю, как событием можно приостановить потоки. подскажите пожалуйста, как это можно сделать? в приведенном ниже примере приостановление и возобновление потоков осуществляется при помощи ResumeThread() и SuspendThread()


C++
1
2
3
4
5
6
7
8
9
10
11
12
case IDM_BEGIN:
            if(isPaused){
                
                isPaused = false;
 
                for(int i=0; i < COLPHILOSOPHER; i++ )
                    ResumeThread(hThread[i]);
                
                StringCchCat(szTextFieldBuffer,10000,TEXT("Запустить\r\n"));
                SetWindowText(hTextField,szTextFieldBuffer);
            }
                break;
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
case IDM_PAUSE:
            if(!isPaused){
                
                isPaused = true;
 
                for(int i=0; i < COLPHILOSOPHER; i++ )
                    SuspendThread(hThread[i]);
                
                StringCchCat(szTextFieldBuffer,10000,TEXT("Пауза\r\n"));
                SetWindowText(hTextField,szTextFieldBuffer);
            }
 
            break;      
        default:
            return DefWindowProc(hWnd, message, wParam, lParam);
        }
        break;
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.04.2013, 14:11
Ответы с готовыми решениями:

Потоки и события
Добрый день. Пишу класс для работы со считывателем бесконтактных карт. Считыватель подключается к COM-порту, и имеет странный протокол...

Потоки и события.
Здравствуйте.Работаю с backgroundworker. При приходе управляющей последовательности,создаю и запускаю потоки на выполнение одной функции,...

Потоки и события
Добрый день. Вопрос по событиям которые происходят в потоке. Если подписать на событие в главном потоке, то оно вызывается нормально....

1
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
26.04.2013, 23:01
Может, так?
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
45
46
47
48
49
50
51
52
53
54
55
#include <windows.h>
#include <process.h> 
 
#include <stdio.h>
 
 
UINT WINAPI thread(void *hEnableRead) 
{ 
 
 printf ("Я, поток остановлен %x, жду разрешения на работу\n", GetCurrentThreadId());
 // ждем разрешения на чтение
 WaitForSingleObject(hEnableRead, INFINITE);
 printf ("Я, %x, работаю дальше\n", GetCurrentThreadId());
 getchar ();
 
 return 0; 
} 
 
 
 
 
 
int main()
{
  SetConsoleCP(1251);
  SetConsoleOutputCP(1251);
  
  HANDLE hEnableRead;    
  char lpszEnableRead[] = "EnableRead";
 
  // создаем событие 
  hEnableRead = CreateEvent(NULL, FALSE, FALSE, lpszEnableRead);
 
  
  //Запускаем 2 потока
  UINT IDThread; 
  HANDLE hThread_0 = (HANDLE) _beginthreadex(NULL, 0, thread, hEnableRead, 0, &IDThread); 
  HANDLE hThread_1 = (HANDLE) _beginthreadex(NULL, 0, thread, hEnableRead, 0, &IDThread); 
 
  Sleep (100);
  printf ("По нажатию Enter созданные потоки возобновят работу\n");
  getchar ();
 
  // даем сигнал 
  SetEvent(hEnableRead);
  SetEvent(hEnableRead);
 
  // закрываем дескриптор
  CloseHandle(hEnableRead);
  CloseHandle(hThread_0);
  CloseHandle(hThread_1);
 
  getchar ();
  return 0;
}
http://www.frolov-lib.ru/books/bsp/v26/ch4_2.htm
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.04.2013, 23:01
Помогаю со студенческими работами здесь

Потоки и события
Здравствуйте! я погрузился в мир событийного программирования и оказался абсолютно беспомощен. ситуация такая: существует игра,...

Потоки, события и вызовы
Здравствуйте товарищи! На днях дотянулись мои корявые ручёнки до создания многопоточных приложений, точнее жизнь заставила. Особого...

Потоки, события, контролы
Есть класс &quot;Main_Control&quot;, в котором происходит чтение SerialPort в своем потоке. Есть форма &quot;Terminal_Win&quot; с textbox'ом, в...

Потоки.События.Не могу разобраться
Здравствуйте . Пытался разобраться с синхронизацией нитей , а точнее- с событиями . Нашёл пример : #include &quot;stdafx.h&quot; ...

Делегаты, события, потоки выполнения
Разработать классы . В каждом классе обязательно реализовать обработчик для события. Атрибуты и методы классов, а также реализация...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru