cancelは、少なくともキュー内にそのオペレーションが確実に存在してて、
実行前か、実行中じゃないと呼ばれないと思うので、エンキューと、キャンセルの
タイミングが書かれてないと、なんともわからない。
cancelが呼ばれた時のキューの中身と、各オペレーションのステータスを表示
してみたらいいんじゃあるまいか。
もしかしたら、メインキューの場合、次のループまで実際の処理が遅延するとか
あるのかもしれない。まぁ結構適当に書いた。