How to exit all running threads? How to exit all running threads? multithreading multithreading

How to exit all running threads?


You don't show the use of any threads in your code, but let's suppose you do have threads in it. To close all your threads you should set all of them to background threads before you start them, then they will be closed automatically when the application exits, e.g.:

Thread myThread = new Thread(...);myThread.IsBackground = true; // <-- Set your thread to backgroundmyThread.Start(...);

A "HOWTO: Stop Multiple Threads" article from microsoft: http://msdn.microsoft.com/en-us/library/aa457093.aspx


You can try the following code:

Environment.Exit(Environment.ExitCode);


I went through a similar issue in my software, but unfortunately just making the threads to work in background didn't solve the issue. In fact while the thread brings back data (the main software is data driven) and if I close the application, it results to Windows Error, giving rise to a debugging message.

So what actually worked for me:

Step 1: Made all threads run in background such as

Thread aThread = new Thread(MethodName);aThread.IsBackground = true; //<-- Set the thread to work in backgroundaThread.Start();

Step 2: In the closing action of the form/application call the Environment.Exit method, such as

Environment.Exit(Environment.ExitCode);

This kept the memory managed perfectly, with no memory leak.

Hope this helps.