Wie kann ich in einem Netzwerk Mutex machen?

Ich habe eine Desktop-Anwendung, die in einem Netzwerk ausgeführt wird, und jede Instanz stellt eine Verbindung zu derselben Datenbank her.

Wie kann ich in dieser Situation einen Mutex implementieren, der auf allen ausgeführten Instanzen funktioniert, die mit derselben Datenbank verbunden sind?

Mit anderen Worten, ich möchte nicht, dass zwei Instanzen gleichzeitig dieselbe Funktion ausführen. Wenn einer die Funktion bereits ausführt, sollten die anderen Instanzen keinen Zugriff darauf haben.

PS: Die Datenbanktransaktion wird nicht gelöst, da die Funktion, die ich nicht zum Mutexen verwenden möchte, die Datenbank nicht verwendet. Ich habe die Datenbank erwähnt, nur weil sie zum Austausch von Informationen zwischen den laufenden Instanzen verwendet werden kann.

PS2: Die Ausführung der Funktion dauert ca. 30 Minuten. Wenn also eine zweite Instanz versucht, dieselbe Funktion auszuführen, möchte ich eine nette Meldung anzeigen, dass sie derzeit nicht ausgeführt werden kann, da Computer 'X' diese Funktion bereits ausführt .

PS3: Die Funktion muss auf dem Client-Computer verarbeitet werden, daher kann ich gespeicherte Prozeduren nicht verwenden.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage