|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
21.06.2019, 08:52 | #1 |
Заблокирован
Регистрация: 17.12.2018
Сообщений: 514
|
Есть ли такая функция?
Существует ли функция, пытающаяся войти в критическую секцию, которая в случае, если другой поток в неё уже вошёл, не задерживается до освобождения секции и потом входит в неё, а возвращает false, или 0, не входя в секцию, а если никакой поток в данную критическую секцию ещё не вошёл, то входит в секцию и возвращает true, или не 0? Мне нужно ограниченное по времени ожидание завершения другого потока, оба потока разделяют саунд-карту и пока один не закончил говорить, другой говорить не должен, а если другой поток болтает слишком долго, то надо просто завершиться, ничего не сказав. Но если другой поток в самом начале войдёт в секцию, а в конце выйдет из неё, в то обычной EnterCriticalSection будет задержка до LeaveCriticalSection во владеющем секцией потоке, сколько бы это ни заняло времени. Я попробовал входить в секцию только на время проверки и сброса/установки глобального флага. Но так потоки иногда начинают говорить в паузах между элементами словаря друг друга. За непосредственное произношение отвечает синхронная PlaySound, поэтому сами звуки не смешиваются, но между вызовами PlaySound потоки вклиниваются, хотя флаг ставится только перед всем предложением и первым вызовом PlaySound отдельно взятым потоком, а сбрасывается только после полного произнесения всего предложения, после того, как PlaySound последний раз вернёт управление отдельно взятому потоку.
Код:
|
21.06.2019, 08:55 | #2 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,342
|
|
21.06.2019, 09:16 | #3 |
Заблокирован
Регистрация: 17.12.2018
Сообщений: 514
|
|
21.06.2019, 09:17 | #4 |
Заблокирован
Регистрация: 17.12.2018
Сообщений: 514
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
есть такая тема | doc91 | Фриланс | 2 | 18.05.2011 21:54 |
Есть ли такая программа | misher | Софт | 11 | 21.04.2011 21:14 |
Есть ли функция такая? (Цвет пиксела) | YYY | Win Api | 2 | 15.11.2009 21:40 |
Есть ли в Word'е такая функция? | чебургатор | Microsoft Office Word | 6 | 24.08.2009 23:07 |
Есть ли такая функция в Паскале?..... | maljoha | Помощь студентам | 2 | 30.04.2008 13:09 |