MessageBox.Show
blocks the current thread until the message is closed by the user. The worker thread cannot process the cancellation request whilst it is blocked.
It's also probably not a good idea to show a modal message from a worker thread. It could have unintended consequences:
MessageBoxes and worker threads[
^]
What you're doing seems like a very bad idea. Do you really want your users to have to click "OK" 1000 times?