This. Close (); Just close the current window, if it is not the main form, you can not quit the program, and if there is a managed thread (not the main threads), also can not cleanly exit;
2.application.exit (); Forces all messages to abort, exits all forms, but does not cleanly exit if there is a managed thread (not the main thread);
3.application.exitthread (); Force abort all messages on the calling thread, as well as the problem that other threads cannot exit correctly;
4.system.environment.exit (0); This is the most thorough exit method, no matter what threads are forced to quit, the program ends very clean.
This property can be used to return the success code from the application. For example, it can be used to control the execution of a set of applications that are called in a script. If the application does not set a value for this property, zero is returned.
The system exit code is set to the return value of the main function, regardless of whether the user sets the property or not, and if main returns void, it is set to zero
C # program shutdown and process shutdown