back

スレッドとアニメーション (6/9)

■スレッドを抜ける

ここでは、どうやってスタートと停止を行なっているか見てみましょう。「GO」ボタンの処理を行なっているのはactionPerformedメソッドですね。ここでの処理は以下のようなものです。

    if (ev.getSource() == b1) {
        KissOfDeath = ! KissOfDeath;
        if (KissOfDeath){
            t1 = new Thread(this);
            t1.start();
        }
    }

 スレッドの開始/終了は、KissOfDeathという変数をチェックして行なうようにしています。まずこの値を真偽反対にして、trueに変わった時には、スレッドを作成してスタートしています。――そして、肝心のrunメソッドでの処理ですが、このように変わっています。

    public void run(){
        try {
            while(KissOfDeath){
                ……以下略……

見ると、while(KissOfDeath)という形でループを行なっていますね。ということは、このKissOfDeathがtrueの間は処理をくり返し続けますが、この値がfalseに変わると繰り返しを抜けてメソッドを終了してしまうのです。

スレッドの中止と再開は、このような形で「runメソッドを終了し、また新たにnew Threadする」という方法で行なうのが、今のところ一番確実のようです。


(by. SYODA-Tuyano.)

※リストが表示されない場合

AddBlockなどの広告ブロックツールがONになっているとリストなどが表示されない場合があります。これらのツールをOFFにしてみてください。


   

記事のリストに戻る



PC Site G+ mail