Brendan Miller <(E-Mail Removed)> wrote:
> I am trying to close my application using Application.exit() in the
> frmMain_Closing event. When the form closes the process does not. My
> application only has one form (no other classes either). The form has
> a really long loop which generates approx. 700 .csv files. I do not create
> any threads myself (Application.exitthread() doesn't work either).
Well that's the first problem - you *should* me creating a separate
thread to do your main processing. You should test a flag in that
thread every so often to see whether or not you should exit, and set
that flag in your closing event.
> To counteract this I have decided to use the Environment.exit(-1)
> method instead.
>
> What is the difference between the three methods?
Application.Exit is to do with message pumps - it effectively means
that Application.Run(...) will return at that point.
Application.ExitThread is similar to Application.Exit, but only for the
message pump on the current thread.
> Using environment.exit() seems a strange way to do things considering there
> is a Application.exit method which claims to do what the Environment.exit()
> method does.
No it doesn't. How is:
<quote>
This method stops all running message loops on all threads and closes
all windows of the application. This method does not force the
application to exit.
</quote>
the same as
<quote>
Terminates this process and gives the underlying operating system the
specified exit code.
</quote>
? Where is the claim you were talking about?
--
Jon Skeet - <(E-Mail Removed)>
http://www.pobox.com/~skeet
If replying to the group, please do not mail me too