Red de conocimiento informático - Problemas con los teléfonos móviles - Cómo configurar un objeto para que se cree una sola instancia en Qt

Cómo configurar un objeto para que se cree una sola instancia en Qt

1.*** Métodos de memoria útiles

Unix: QSharedMemory "posee" un segmento de memoria compartida. El kernel de Unix libera un segmento de memoria compartida cuando el último subproceso o proceso que tenía una instancia de QSharedMemory adjunta se separa de ese segmento de memoria compartida destruyendo su instancia de QSharedMemory. Sin embargo, si el último subproceso o proceso falla sin ejecutar el destructor QSharedMemory, el segmento de memoria compartida sobrevivirá al bloqueo.

(Se dice que este método tiene problemas de liberación de memoria en Linux y, en algunos casos, provocará excepciones o fallos en el programa)

[cpp] Ver copia pura

//Asegúrate de ejecutarlo solo una vez

QSystemSemaphore sema("JAMKey", "JAMKey", 1, QSystemSemaphore", "JAMKey").1, QSystemSemaphore::Open) ;

p>

sema.acquire(); //Operación *** memoria compartida en la sección crítica

QSharedMemory mem("SystemObject"); // Nombre del objeto global

if (!mem.create(1)) // Si hay un objeto global, salga

{

QMessageBox::information(0, MESSAGEB); / Si hay un objeto global, se utilizará para crear nueva memoria