Instead of aborting the thread, let it complete naturally when you set the 'isthreadrunning' flag to false.

Try this, see if it works:

In the main thread:
Code:
private void stop()
{
    isthreadrunning = false;
}

Code:
private void startthread()
{
    while(isthreadrunning)
    {
        Beginexecute();
        Thread.Sleep(1000);
     } 
}