I have a custom ApplicationContext and I'm trying to terminate it if specific conditions are met. I am using a Mutex to ensure a single instance.
I've tried base.OnMainFormClosed(null, null);
. Application.Exit()
and ExitThread
. Everything stops processing, but the process itself is still running.
Complete Main() method:
static void Main()
{
bool firstInstance;
using (Mutex mutex = new Mutex(true,
@"Global\MyApplication",
out firstInstance))
{
if (!firstInstance)
{
MessageBox.Show("Another instance is already running.");
return;
}
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new CustomContext());
}
}
What's the correct technique?