ボタンを押したときにTimerでボタンの色を変更する処理を作成しています。
下記コードで基本的な動きはできるようになったのですが、
ボタンAとBを交互に素早く押すという動作を行ったとき、
まれにTimerの処理が行われずボタンの色が変化しない現象が発生します。
ログで追ってみたところ、changeメソッドには確かに処理が通っているのですが、
changeBtnColorメソッドの中には処理が入っていないことがわかりました。
原因が分かる方がいらっしゃいましたらご教示お願いいたします。
private void change(int ptn){ //省略 //ボタンAを押したとき if(ptn == 0){ //0.5秒後にボタンAの色を変更 System.Threading.Timer timer1 = new System.Threading.Timer(changeBtnColor, buttonA, 500, 0); //ボタンBを押したとき }else if(ptn == 1){ //0.5秒後にボタンBの色を変更 System.Threading.Timer timer2 = new System.Threading.Timer(changeBtnColor, buttonB, 500, 0); } } private void changeBtnColor(Object state) { //ボタンの色を変える処理 }

回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/06/16 22:58
2016/06/16 23:40 編集