Loading GIF form on a Windows console app using threads
I don't know much about threading, so I can't really comment on that, but there is an opportunity to extract some logic that I am sure is used elsewhere in your project. You have this in ShowLoadingGif()


Point formCenterPt = new Point()
{
    X = this.Location.X + (this.Width/2),
    Y = this.Location.Y + (this.Height/2)
};



And this in ShowLoading()


Point offsetPt = new Point()
{
    X = parentCenter.X - (loading.Width /2),
    Y = parentCenter.Y - (loading.Height/2)
};



I would create two functions that take a form as an argument and return a point representing the StartingPosition and center point respectively.



I'm not a fan of this If statement.


try
{
    this.Enabled = true;
    if(loadingThread.IsAlive)
    loadingThread.Abort();
}



First off, at the very least, loadingThread.Abort needs to be indented properly.

if(loadingThread.IsAlive)
    loadingThread.Abort();


But I still don't like it. Let's say down the road Mr. Maintainer realizes that something else should happen if(loadingThread.IsAlive. Then they do something like this.

if(loadingThread.IsAlive)
    loadingThread.Abort();
    foo.bar();


The problem here is, foo.bar() will always be executed, but it looks like it will only be executed if(loadingThread.IsAlive).

So, there are really only two options in my mind.


Write it as a single line If statement.

if (loadingThread.IsAlive) loadingThread.Abort();

Or put the braces in.

if (loadingThread.IsAlive)
{
    loadingThread.Abort();
}





This also makes me uncomfortable.


catch (Exception ex)
{
    Log(String.Concat("Loading gif thread release failed: ",ex));
}



You're swallowing every possible exception with nothing more than a message in a log file. You should figure out which exceptions you can gracefully handle and catch only those.