AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Suchfunktion Ergebnis der Suchanfrage

Ergebnis der Suchanfrage


Datum des Suchindex: Heute, 16:02

Parameter dieser Suchanfrage:

Suche in Thema: Mutex zwischen 2 Prozessen
Suche alle Beiträge, die von "Jasocul" geschrieben wurden
• Suchmethode: "Suche nach allen Begriffen"
• Nach Datum (firstpost) sortiert
• Zeige Treffer als Beiträge
Zeige 5 von insges. 5 Treffern
Suche benötigte 0.000s

Es liegen Ergebnisse in folgenden Bereichen vor:

  • Forum: Win32/Win64 API (native code)

    AW: Mutex zwischen 2 Prozessen

     
      by Jasocul, 2. Nov 2018
    Vielleicht nochmal eine andere Formulierung:
    CreateMutex erzeugt ein Handle auf ein Mutex.
    Existiert dieses bereits, wird ein neues Handle darauf erzeugt, allerdings gibt es dann auch ein GetLastError.
    Diese neue Handle muss natürlich auch wieder freigegeben werden, da es sonst zu den beschriebenen Problemen führt. Und diese Freigabe fehlt bisher.
  • Forum: Win32/Win64 API (native code)

    AW: Mutex zwischen 2 Prozessen

     
      by Jasocul, 2. Nov 2018
    @Michael:
    Ja, du hast Recht. Es ist ein neues Handle auf das selbe Mutex. Dennoch muss das Handle wieder freigegeben werden.
  • Forum: Win32/Win64 API (native code)

    AW: Mutex zwischen 2 Prozessen

     
      by Jasocul, 2. Nov 2018
    Kannst du bitte versuchen zu verstehen, was ich schreibe? :wink:

    Due erzeugst in deiner Prozedur ein neues LOKALES Handle auf das Mutex. Und zwar jedesmal ein weiteres, wenn du den Button drückst. Beim ersten mal weißt du LMutex dem FMutex zu. Alle weiteren CreateMutex werden von dir nicht wieder freigegeben. Und genau das verursacht das von dir beschriebene Problem.

    Es wird doch kein neues...
  • Forum: Win32/Win64 API (native code)

    AW: Mutex zwischen 2 Prozessen

     
      by Jasocul, 2. Nov 2018
    Nein.
    LMutex := CreateMutex(nil, True, pCHAR('test'));
    Erzeugt immer ein neues Handle.
    Du kannst dsas mit dem Debugger auch leicht prüfen.
    Oder, wenn du den Source so änderst, wirst du sehen, dass es das Handle gibt:
    LMutex := CreateMutex(nil, True, pCHAR('test'));

    if (LMutex = 0) or (GetLastError <> 0) then
    begin
    MessageDlg(SysErrorMessage(GetLastError), mtInformation, , 0);
  • Forum: Win32/Win64 API (native code)

    AW: Mutex zwischen 2 Prozessen

     
      by Jasocul, 2. Nov 2018
    CreateMutex erzeugt immer ein neues Handle, wenn die Rechte ausreichen.

    Das heißt, wenn du den btn1 drückst, bekommst du jedesmal ein neues Handle, das aber nicht mehr freigegeben wird. Somit hilft es nicht, wenn du btn2 drückst, da das "neue" Handle nicht freigegeben wird.

    Es sollte genügen, wenn in btn1 prüfst, ob dein FMutex-Handle bereits existiert und dann gar nicht erst durch die...


URL zu dieser Suchanfrage:

https://www.delphipraxis.net/dp_search.php?do=usersearch&search_username=Jasocul&search_exact_username=1&search_sortby=dateline&search_resulttype=post&search_matchmode=0&searchthreadid=198440
Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:06 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