>>30
UIを扱うスレッドで長い時間がかかる処理をする、ということ自体がダメ。
だから「UIだけを扱うスレッドを走らせよう」って発想が出て「UIスレッド」って呼ばれるのよ。

処理に割り込みなんて、自分で書かないとできない。
(TerminateProcessやTerminateThreadはDLL絡みとかで問題がある)
長い時間がかかる処理を中断させたいなら、その処理内で中断フラグをちょくちょく見るしかない。