0 / 0 / 0
Регистрация: 17.03.2014
Сообщений: 86
|
||||||
1 | ||||||
Критические секции в классах20.09.2017, 16:45. Показов 2126. Ответов 6
Задание: Реализовать очередь текстово информации на динамическом массиве. Потоки первого типа добавляют информацию, потоки второго вида удаляют информацию.
Мой код:
Как вызвать критические секции для Функций
q.pop();
q.MessageDel(); q.push(tmp); q.MessageAdd(); Как уже не пытался вызвать через _beginthread, одни ошибки.
0
|
20.09.2017, 16:45 | |
Ответы с готовыми решениями:
6
Критические секции в потоках Deadlock и критические секции Потоки. Критические секции Как работают критические секции на примерах? |
413 / 148 / 48
Регистрация: 02.06.2016
Сообщений: 342
|
|
20.09.2017, 23:04 | 2 |
Сообщение было отмечено HotBloode как решение
Решение
Перед строкой 59 добавьте LeaveCriticalSection(&critsect);
В MessageDel и MessageAdd критические секции не нужны. И почему бы не сделать критическую секцию приватным полем класса. В конструкторе ее инициализируете, в деструкторе удаляете.
0
|
0 / 0 / 0
Регистрация: 17.03.2014
Сообщений: 86
|
|
21.09.2017, 07:44 [ТС] | 3 |
Предположим, а если у меня функция класса с параметрами и _beginthread(q.push(tmp), 1024, NULL); ругается на параметр и вообще на скобки, то что делать?
0
|
21.09.2017, 10:38 | 4 |
Ну, если есть подозрение на
Что значит "ругается"? Не проходит этап компиляции? Тогда надо код исправлять, а не плодить всякие проверки. Добавлено через 5 минут У меня программа норм.работает. Раздражает только немного эти бестолковые две строки... Добавлено через 50 секунд А так соглашусь с GoshaM - в MessageDel и MessageAdd критические секции не нужны.
0
|
413 / 148 / 48
Регистрация: 02.06.2016
Сообщений: 342
|
||||||
21.09.2017, 11:35 | 5 | |||||
Сообщение было отмечено HotBloode как решение
Решение
0
|
0 / 0 / 0
Регистрация: 17.03.2014
Сообщений: 86
|
|
21.09.2017, 16:52 [ТС] | 6 |
Спасибо большое.
Можете показать как включать и выключать критическую секцию из консоли? Т. если я буду запускать exe из консоли и буду передавать флаг (если передаю, то будет работать критическая секция, а если нет, то не будет).
0
|
413 / 148 / 48
Регистрация: 02.06.2016
Сообщений: 342
|
||||||
25.09.2017, 08:42 | 7 | |||||
Это не эффективно, приведет к дублированию всего кода, лучше примените условную компиляцию, везде где используете критические секции.
Со строкой #define SECTIONON критические секции будут включены, без отключены.
0
|
25.09.2017, 08:42 | |
25.09.2017, 08:42 | |
Помогаю со студенческими работами здесь
7
Критические секции Критические секции ThreadPool и критические секции stm32f407 + критические секции Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |