Domanda

Abbiamo più app MFC che utilizzano CMutex( false, "blah" ), dove "blah" consente al mutex di funzionare oltre i limiti del processo.

Una di queste app è stata riscritta senza MFC (utilizzando invece Qt).Come posso simulare il CMutex utilizzando le chiamate Win32?(QMutex di Qt non è interprocesso.) Preferisco non modificare le app MFC.

È stato utile?

Soluzione

Per i mutex tra processi desideri queste chiamate:

CreaMutex

WaitForSingleObject

RilasciaMutex

ChiudiHandle

Queste sono le chiamate API Win32 sottostanti di cui CMutex è un wrapper.

Per i soli mutex in-process è possibile utilizzare anche queste chiamate, che sono più veloci:

Inizializza sezione critica

Entra nella sezione critica

Lascia la sezione critica

Elimina sezione critica

Altri suggerimenti

Le seguenti funzioni probabilmente saranno ciò che desideri, sono tutte documentate su MSDN.

CreateMutex(...)
WaitForSingleObject(...)
ReleaseMutex(...)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top