Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Lokaler Mutex? (https://www.delphipraxis.net/102046-lokaler-mutex.html)

Zacherl 22. Okt 2007 18:15


Lokaler Mutex?
 
Hey,

ist es möglich eine Art Mutex zu erstellen, welcher nur im eigenen Programm gültig ist? Ich möchte diesen für Synchronisationszwecke einsetzen. Da meine Methode allerdings in mehreren zugleich gestarteten Programm vorkommen kann, würden sich diese gegenseitig blockieren.

Gruß

jbg 22. Okt 2007 18:16

Re: Lokaler Mutex?
 
Das was du suchst, nennt sich Critical Section (SyncObjs.pas TCriticalSection).

Apollonius 22. Okt 2007 18:18

Re: Lokaler Mutex?
 
Spricht was gegen einen unbenannten Mutex? Dafür einfach nil im lpName-Parameter von CreateMutex einsetzen.

SirThornberry 22. Okt 2007 18:21

Re: Lokaler Mutex?
 
eine weitere unschöne Lösung wäre den Mutexnamen nicht fest zu vergeben sondern zum Beispiel die Prozess-ID zu verwenden. Damit würden sich die verschiedenen Prozesse auch nicht in die Quere kommen.

Zacherl 22. Okt 2007 18:25

Re: Lokaler Mutex?
 
CriticalSection wollte ich nicht nehmen, aber dass man Mutexe auch unbenannt lassen kann wusste ich nicht. Werde das mal testen :)

alzaimar 22. Okt 2007 18:56

Re: Lokaler Mutex?
 
Du kannst allen Synchronisationsobjekten von Windows Namen zuweisen, dann sind sie global gültig, oder nicht, dann sind sie nur im Prozess bekannt.

jbg 22. Okt 2007 19:20

Re: Lokaler Mutex?
 
Zitat:

Zitat von Zacherl
CriticalSection wollte ich nicht nehmen

Und warum nicht? Sind die dir zu schnell? Oder brauchst du WaitForSingle/MultipleObject(s) ?


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:40 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz