0 / 0 / 2
Регистрация: 22.02.2011
Сообщений: 76
1

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

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

Author24 — интернет-сервис помощи студентам
Привет всем. Есть задача, считать с формы команду(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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.04.2013, 14:11
Ответы с готовыми решениями:

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

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

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

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

1
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
26.04.2013, 23:01 2
Может, так?
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
26.04.2013, 23:01
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.04.2013, 23:01
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru