Question: I am showing a splash screen on a background thread while my program loads. Once it loads I am aborting the Thread as it's only purpose was to show a Now Loading splash form. 

My problem is that when aborting a Thread it throws a `ThreadAbortException` that the user can just click Continue on.

How do I deal with this? I was trying to suppress it like so -->

```
            try
        {
            Program.splashThread.Abort();
        }
        catch(Exception ex)
        {

        }

```

but I have a feeling that is going to get me yelled at here and it doesn't work any way.

Thanks!

Answer: 
Change the exception type to **ThreadAbortException** and add a call to **ResetAbort()**

```
    try
    {
        Program.splashThread.Abort();
    }
    catch(ThreadAbortException ex)
    {
        Thread.ResetAbort();
    }

```

In general, aborting threads is considered very bad practice and can lead to all sorts of hard to track down bugs. Have you considered figuring out a way to just **close the splash window** or use some sort of **polling** to stop the thread when a flag has been set?
Try this code. It's working fine for me.

```
void splash()
{
    try {
        SplashScreen.SplashForm frm = new SplashScreen.SplashForm();
        frm.AppName = "HR";

        Application.Run(frm);
    }
    catch (ThreadAbortException ex)
    {
        Thread.ResetAbort();
    }
}

```