Add a class level bool: call it pauseRequired and set it to false.
Then in your click handler set it to true or false appropriately.
Then change this:
Thread.Sleep(300);
To this:
do
Thread.Sleep(300);
while(pauseRequired);
In theory, you should use a lock on the variable, but in this case it's irrelevant since it's being changed by only one thread, and monitored by the other.
BTW: You would probably be better off using a BackgroundWorker for this as it has progress reporting built in.