![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| cupper |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 525 Регистрация: 29.11.2006 Репутация: нет Всего: 1 |
есть метод a() and b()
нужно синхронизовать что бы они выполнялись в такой послдовательности a() b() a() b() каждый a() и b() вызывается из разных потоков. b физически может быть вызван только после a(). Создаю глобальных семафор (не обращайте на непонятные закорючки это все cli, тобишь С# тока из С++) static gcroot<System::Threading::Semaphore^> GLOBAL_MTX = gcnew System::Threading::Semaphore(1, 1); a() { try{GLOBAL_MTX ->WaitOne()} catch(){GLOBAL_MTX ->release()} } b() { GLOBAL_MTX ->release() } работает это так: вызываеться метод a() из двух потоков, кто первый дошол до семафора, тот его залочил и продолжил работать дальше, другой курит. Спутя некоторое время вызывается b()... и вот тут я получаю
почему ??? Как будто у меня не разу не вызывался WaitOne(), хотя он как один раз и вызывался, тем кто первый до него дошел. |
|||
|
||||
| cupper |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 525 Регистрация: 29.11.2006 Репутация: нет Всего: 1 |
GLOBAL_MTX создается в хедере не в классе но в неймспейсе.
Этот хедер подключается двумя cpp файлами. В первой функция a() во втором b() вы работе с GLOBAL_MTX исключительно в функции a() все работает корректно. получается у меня GLOBAL_MTX создается дважды ? О_О |
|||
|
||||
| cupper |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 525 Регистрация: 29.11.2006 Репутация: нет Всего: 1 |
блин, в этом и была ошибка :( не стоило мне определять глобальную переменную в h файле ((
|
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |