Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Application shutdown in MonoMac

Tags:

c#

exit

monomac

I'm trying to shutdown a MonoMac application by using Environment.Exit(0). However, this call for some reason does not return. It does not throw an exception, either. When I execute the function in the immediate window in MonoDevelop, it times out.

I have no idea how to approach debugging this. I thought that Environment.Exit kills the process...

like image 266
sohum Avatar asked Oct 20 '11 22:10

sohum


2 Answers

You should use the NSApplication.Terminate method instead.

Note that this method may call the application delegate (if defined) to confirm the termination (See NSApplicationDelegate.ApplicationShouldTerminate).

like image 76
Laurent Etiemble Avatar answered Sep 28 '22 00:09

Laurent Etiemble


You may add two override functions in AppDelegate.cs.

public override NSApplicationTerminateReply ApplitionShouldTerminate(NSApplication sender) 
{
    mainWindowController.Window.Close();
    return NSApplicationTerminateReply.Now;
}

public override bool ApplicationShouldTerminateAfterLastWindowClosed(NSApplication sender)
{
    return true;
}
like image 25
Utmost Avatar answered Sep 28 '22 00:09

Utmost