Отправляет email-рассылки с помощью сервиса Sendsay
Открытая группа
28 участников
Администратор Legotckoi
Модератор ProgrammersBlog

Последние откомментированные темы:

20250621155647

←  Предыдущая тема Все темы Следующая тема →
пишет:

Qt/C++ - Урок 043. Qt Single Application - запускаем только один экземпляр приложения

Разрешение запуска только одного экземпляра приложения может быть необходимо для ограничения проблем с утечками памяти, либо для устранения возможных проблем с конкуренцией двух экземпляров приложения за одни ресурсы, файлы, база данных SQLite и т.д. Либо если приложение в принципе предполагает только один экземпляр, используемый пользователем.

Для решения данной задачи можно использовать два следующих способа:

  • С использованием QLockFile - когда создаётся временный файл, который уничтожается при закрытии приложения. При этом при запуске второго экземпляра приложения происходит проверка на существование данного файла и если файл уже создан одним открытым экземпляром приложения, то второй экземпляр автоматически закрывается;
  • С использованием QSystemSemaphore и QSharedMemory - в данном случае создаётся сегмент разделяемой памяти и производится попытка присоединить его к существующему сегменту по уникальному идентификатору. Если попытка присоединения прошла успешно, значит один экземпляр приложения уже создан. Соответственно, сообщаем об этом пользователю и закрываем приложение. В случае, если попытка присоединения прошла безуспешно, то создаём выделяем сегмент памяти для приложения и запускаем первый экземпляр.

Весь дальнейший программный код не будет выходить за пределы main.cpp.

Читать далее

Это интересно
0

05.02.2017
Пожаловаться Просмотров: 904  
←  Предыдущая тема Все темы Следующая тема →


Комментарии временно отключены