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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
demid
0 / 0 / 0
Регистрация: 23.12.2007
Сообщений: 20
#1

Как грамотно прервать рабочий поток, чтобы главный поток был поставлен об этом в известность незамедлительно? - C++

13.05.2009, 16:09. Просмотров 808. Ответов 0
Метки нет (Все метки)

Не подскажете, как решить стандартную проблему:
есть MFC-приложение, из него создается рабочий поток, который время от времени шлет сообщения (SendMessage) главному потоку. Как грамотно прервать рабочий поток, чтобы главный поток был поставлен об этом в известность незамедлительно? Рабочий поток время от времени проверяет, не нужно ли ему остановиться, но может возникнуть ситуация, что приложение захочет смерти этого потока как раз в тот момент, когда он задумает послать сообщение главному! Время от времени засыпать (Sleep) главному потоку нельзя, т.к. он тогда не сможет обработать сообщение от рабочего потока.

Жду советов и предложений. Заранее всем откликнувшимся СПАСИБО!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.05.2009, 16:09
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как грамотно прервать рабочий поток, чтобы главный поток был поставлен об этом в известность незамедлительно? (C++):

Как прервать поток ввода, введя определенный символ? - C++
Доброго всем времени суток double d; char c; cin >> d; cin >> c; cout << c << d; Я ввожу число, которое записывается в d,...

Скопировать поток и добавить ошибки в поток - C++
Здорова господа! Есть задачка: "Скопируйте поток объектов типа Name_and_address и вставьте в него столько ошибок, сколько сколько...

Как сделать отступы или , чтобы входной поток(ввода) отдельно от вывода - C++
#include <iostream> #define MAX_N 100 using namespace std; class Stack { int st_size=0; int st_elements; ...

Как сделать чтобы поток вызванный дочерним потоком не перебивался другими потоками? - C++
При вызове несколько раз подряд возможен перебив другими потоками.Как бы устранить?Я вот думаю что нужно повысить приоритет этого потока до...

Нужно создать базу данных (создать пустой бинарный файл). Через поток. Поток бинарного файла описать в виде локальной переменной внутри функции. - C++
Совсем не понял эту тему. Нужно создать базу данных (создать пустой бинарный файл). Через поток. Поток бинарного файла описать в виде...

Как сделать так, чтобы поток ofstream НЕ открылся, или открылся неправильно? - C++
Эта ситуация нужна мне для тестирования. Итак, файл "file.txt" вручную не удаляется. Не переименовывается. Если поток закрыть, как в...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.05.2009, 16:09
Привет! Вот еще темы с ответами:

Как реализовать, чтобы главный поток ждал, пока завершат свою роботу другие потоки - C#
Всем доброго времени суток. Есть следующий код, как реализовать чтоб главный поток подождал пока завершат свою роботу другие потоки? ...

Поток освобождается, но переменная, которой был присвоен этот поток, не очищается - Delphi
Мне интересно, вот поток отработал, стоит FreeOnTerminate:=True; Поток освобождается, но переменной которой было присвоен этот поток, не...

Текущий поток должен быть задан как поток однопоточного контейнера (STA), чтобы вызовы OLE стали возможны - C#
пишет:Текущий поток должен быть задан как поток однопоточного контейнера (STA), чтобы вызовы OLE стали возможны. Проверьте, что ваша...

Текущий поток должен быть задан как поток однопоточного контейнера (STA), чтобы вызовы OLE стали возможны - C#
Суть проблемы: Создаю приложение по sql. При создании формы с датагридом и пр. отдельным потоком возникает ошибка: "Текущий поток должен...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru