private void InternalThreadedSearch(object state) { try { // Perform search here } catch (ThreadAbortException) { // Perform any clean up code you need here // you can use Thread.ResetAbort(); if you need to // ignore the abort and continue executing. } }