A simple way is a variable (for example abortMethodRunner) that both the main thread and the MethodRunner thread can reach. In the actual method of the MethodRunner thread there must be an occasional check to see if it should abort, something like:
while(HasMoreWorkItems && !abortMethodRunner)
{
}
Good luck!