Вверх ↑
Этот топик читают: Гость
Ответов: 875
Рейтинг: 322
#1: 2009-02-03 23:51:14 ЛС | профиль | цитата
Вопрос может быть и смешной но... Ни как не могу понять, как это работает. Глазами вижу - закрывается форма, но введенные значения сохраняются, так что же это за Mutex - в данном случае asd. code_11689.txt
карма: 1

0
файлы: 1code_11689.txt [304B] [206]
Разработчик
Ответов: 26305
Рейтинг: 2146
#2: 2009-02-03 23:56:09 ЛС | профиль | цитата
kamakama, в данном применении Mutex работает как защита от запуска второй копии, а данные в основном приложении и будут сохраняться. Попробуй запусти вторую копию, она у тебя не запуститься
карма: 22

0
Ответов: 875
Рейтинг: 322
#3: 2009-02-03 23:59:31 ЛС | профиль | цитата
nesco, это я понимаю и визуально это вижу. Но не могу понять какая форма на самом деле закрывается.
карма: 1

0
Разработчик
Ответов: 26305
Рейтинг: 2146
#4: 2009-02-04 00:28:46 ЛС | профиль | цитата
kamakama, вторая

Вот так будет нагляднее



Add(MainForm,5193279,273,273)
{
SavePosName="aa"
link(onCreate,371009:doCreateMutex,[])
}
Add(Mutex,371009,336,287)
{
Name="asd"
link(onCreated,12356365:doMessage,[(384,293)(384,258)])
link(onAlreadyExists,4723278:doMessage,[])
}
Add(Edit,426443,273,231)
{
Left=115
Top=90
Width=100
Text=""
}
Add(Message,12356365,399,252)
{
Message="Запущена 1-я копия"
}
Add(Message,4723278,399,294)
{
Message="Попытка запустить 2-ю копию"
link(onMessage,5193279:doClose,[(457,300)(457,357)(254,357)(254,300)])
}

карма: 22

0
Ответов: 875
Рейтинг: 322
#5: 2009-02-04 01:49:16 ЛС | профиль | цитата
Получается что при открытии первой копии она получает имя ХХХ и при попытке открытия второй копии происходит проверка имени ХХХ и если совпало то вторая копия зарывается. Спасибо.
карма: 1

0
Разработчик
Ответов: 26305
Рейтинг: 2146
#6: 2009-02-04 01:59:28 ЛС | профиль | цитата
kamakama, в системе не может быть два Mutexa с одним именем. Второй раз вместо создания, открывается тот же Mutex, но с ошибкой Already Exists
------------ Дoбавленo:

kamakama писал(а):
Получается что при открытии первой копии она получает имя ХХХ

Нет, копия ничего не получает, Mutex -- да
------------ Дoбавленo:

Вообще-то данное применение Mutexa довольно тупое, он нужен для гораздо более интересных вещей, таких, например, как защита очереди потоков для доступа к одним и тем же данным (синхронизация потоков). Достоинство его в том, что он еще и глобальный и распростаняется на все процессы и потоки в системе
карма: 22

0
6
Сообщение
...
Прикрепленные файлы
(файлы не залиты)