Platforms to show: All Mac Windows Linux Cross-Platform
Required plugins for this example: MBS Util Plugin
You find this example project in your Plugins Download as a Xojo project file within the examples folder: /Util/Named Mutex
This example is the version from Tue, 4th May 2020.
Project "Named Mutex.xojo_binary_project"
Class App Inherits Application
Const kEditClear = "&Delete"
Const kFileQuit = "&Quit"
Const kFileQuitShortcut = ""
End Class
Class MainWindow Inherits Window
Control LockButton Inherits PushButton
ControlInstance LockButton Inherits PushButton
EventHandler Sub Action()
If mutex.TryLock Then
List.AddRow "Mutex locked."
Me.Enabled = False
UnlockButton.Enabled = True
Else
List.AddRow "Failed to lock mutex. The mutex is locked by someone else."
End If
Exception r As UnsupportedOperationException
List.AddRow r.message
End EventHandler
End Control
Control UnlockButton Inherits PushButton
ControlInstance UnlockButton Inherits PushButton
EventHandler Sub Action()
mutex.Unlock
list.AddRow "Mutex unlocked."
Me.Enabled = False
LockButton.Enabled = True
Exception r As UnsupportedOperationException
List.AddRow r.message
End EventHandler
End Control
Control List Inherits Listbox
ControlInstance List Inherits Listbox
End Control
EventHandler Sub Open()
mutex = New NamedMutexMBS("test")
list.AddRow "Mutex created: "+str(mutex.Handle)
Exception r As UnsupportedOperationException
List.AddRow r.message
End EventHandler
Property mutex As NamedMutexMBS
End Class
MenuBar MainMenuBar
MenuItem FileMenu = "&File"
MenuItem FileQuit = "#App.kFileQuit"
MenuItem EditMenu = "&Edit"
MenuItem EditUndo = "&Undo"
MenuItem EditSeparator1 = "-"
MenuItem EditCut = "Cu&t"
MenuItem EditCopy = "&Copy"
MenuItem EditPaste = "&Paste"
MenuItem EditClear = "#App.kEditClear"
MenuItem EditSeparator2 = "-"
MenuItem EditSelectAll = "Select &All"
End MenuBar
End Project
The items on this page are in the following plugins: MBS Util Plugin.