« ステータスバーへのコンポーネント登録と削除 | トップページ

2005.11.26

UIスレッドでのタイマー実行

ユーザインタフェースを操作する処理を一定時間ごとに繰り返し行いたい場合,スレッドを使うのが一般的である。しかし,普通に自前で生成したスレッドからはSWTのUIコンポーネントを操作することができないために,DisplayクラスのsyncExec()やasyncExec()を使用する必要がある。ある間隔を持って処理を繰り返し行う場合は,Thread.sleep(500)というようにしてスレッドの実行を停止させることが思いつく方法だが,SWTではOSのタイマーイベントを使用する方法が提供されている。

OSが持つタイマーイベントを利用するには,DisplayクラスのtimerExecメソッドを使用する。

  Runnable runnable = new Runnable() {
    public void run() {
      // 繰り返し行いたい処理
      Display display = ...;
      if (!display.isDispose())
        display.timerExec(500, this);
    }
  };
  Display display = ..;
  if (!display.isDispose())
    display.timerExec(500, runnable);

繰り返し行いたい処理は,Runnableインタフェースの実装として作成する。上記では,匿名クラスとしてRunnableインタフェースの実装オブジェクトを生成している。そして,Displayオブジェクトが破棄されているかどうかをチェックし,破棄されていなければ,DisplayオブジェクトのtimerExecメソッドに時間とRunnableオブジェクトを渡す。第1引数は,Runnableオブジェクトのrunメソッドを呼び出すまでの待ち時間を指定する。上記では,0.5秒後にrunメソッドを呼び出すように指定している。

timerExecメソッドによって,OSにタイマーの登録が行われ,指定時間後にタイマーイベントが発生し,それを契機としてrunメソッドが実行される。ただし,実行されるのは1回だけ。繰り返し処理を行いたい場合は,runメソッド内で再度timerExecメソッドを呼び出して再びrunメソッドが実行されるように登録すればよい。その際に,Displayメソッドが破棄されているかどうかをチェックする必要がある。

このrunメソッドの呼び出しはUIスレッドが行うので,SWTのUIをrunメソッド内で操作することが可能だ。

あるUIコンポーネントを定期的に操作する方法としては,原則として上記のtimerExecメソッドを使用するべきだ。例えば,下記のように自前でスレッドを生成し,その中で繰り返しsyncExecメソッドなどの呼び出しを行ってUIコンポーネントを操作した場合は,他のコンポーネントに影響が発生してしまう。

  Runnable runnable = new Runnable() {
    public void run() {
      while(true) {
        Display display = ..;
        if (!display.isDispose()) {
          display.syncExec(new Runnable() {
            public void run() {
              // 繰り返し処理
            }
          });
        }
        Thread.sleep(500);
      }
    }
  };
  (new Thread(runnable)).start();

上記のようなコードでも,繰り返し処理はちゃんと実行されるだろう。しかし,DirectoryDialogクラスを利用して実現されるディレクトリ選択ダイアログの動作が,正しく行われなくなってしまう。具体的には,サブディレクトリやアイコンの読み込みがマルチスレッド化されているのだが,そのスレッドが動作しなくなってしまい,ディレクトリの選択ができないといった現象になる。

気軽にスレッドを作ることはできるが,その結果思わぬ不具合を引き起こしてしまう可能性があるので,気をつけて欲しい。

|

« ステータスバーへのコンポーネント登録と削除 | トップページ

コメント


今日の女・・一緒に街歩いてたらオレのズボンのポケットに手を突っ込んできて、
ずっとニギニギしてたわwwww
ホテル到着するなり(フ^ェ^ラ)だもんなwwww Say欲すごすぎwwwww

http://paipai.krieh.com/wLZCuGo/

投稿: パクーーーンチョ!!! | 2009.05.11 06:41 午後


うぴゃー!!! 一回だけで6万くれたあぁぁwwwwww
金玉交互にキュポキュポ咥えながら高速手コキされたもんだから
即イキしちゃったのがちょっともったいなかったな(^^;

http://komachin.anusu.net/1c4ladU/

投稿: ちょwwおまwww | 2009.05.23 02:36 午前


ふぉあぁあああ過去最高だったので報告ッスヽ(゜∀゜)ノ!!!!!
パイズリフェラがメインだったけどケツと玉で遊ばれた時が一番ヤバかったw
玉を口に含みながら指でGスポ刺激ってどこの嬢だよwwwww
不感症ぎみの俺ですらアヒアヒ言うくらいだからガチだわコレwww

http://papapai.younube.net/OF6XWlB/

投稿: お待たせ(・∀・)!! | 2009.05.26 12:26 午前


ク×ニしながら見る女のアヘ顔はたまりまへんなー(*´д`*)ハァハァ
マ×コまんべんなく舐め舐めしたら超モロ感で足ヒクヒクしてたよwwwww
やっぱしク×ニだけはやめれないっすよねー?wwwwww

あっちなみに昨日の女はナカ出ししてやったけど
全然気づいてなかったよーwwww バカスwwwwwwww

http://ketsu.arctries.com/bjbqn4v/

投稿: ク×ニマスター!!!!! | 2009.09.07 12:26 午後


ぴゃはー!!!!!!!!
なにこれwwww

10分くらいもみもみなめなめしただけなのに3万もらったーwwwwwww

今日は時間が無かったからちょっとだけだったけど、
明日はたっぷり堪能してやるぜ( ̄ー ̄)ニヒヒ

http://paipai.f-forward.net/6snwuji/

投稿: もみもみボーナスwwww | 2009.09.22 08:48 午前


ぼろ儲けーーーー!!!!!wwwwwww
別にいらないけど、ノリでセルシオ買ってしまったしwwwwwwwww

とりま、今日も10マンゲット行ってきあーすwwwwww
帰りは勿論パチで遊ぶっすよーwww

http://mesu.korakoracola.net/q63h3dv/

投稿: ふぁーーーーだふ!! | 2009.09.27 07:35 午後


亀 頭寸止めくらいまくってカウパー出まくりwwwww
イ ク瞬間「ぁぁぁああああああ!!!!!」って大声出してしまった(^^;
やっぱ経験無し男はお姉様が丁寧にエスコートしてくれまつねwwwwww
てか今回の事で寸止めプ レ イにハマってしまったww またお願いしようwww

http://hole.hotohototo.net/jb2yvea/

投稿: カウパー多めwwww | 2009.10.14 10:12 午後


昨日会った女の子、「舐 めまくりたい!!!!!」って言ってたから
よほどし ゃ ぶ り た いんだな(^^;って思ってたら
全身余すとこなく舐 めてきてビックリしたよー( ´д)
さすがに鼻舐 められた時は臭かったけど、
寝てるだけで7 万 ゲ ッ ト出来たし全然問題ありましぇんなwwwwww

http://pamp.gorioyaji.net/z7mqew5/

投稿: これなんて魔法?www | 2009.10.20 08:26 午後


うはーーーお!!!!!3ピーーーやてきたひょう!!!!!
顔-騎にフェ-ラに騎-乗で至れり尽くせりナリねぇヽ(´ー`)ノ
あっ女の子2人とも中-出ししてやったけどいいよな別に?
イ-クっつってんのに騎-乗止めない女がワリーよなwwwwwwwww

http://hoge.nadamonty.net/tjymmnj/

投稿: 3人ひゃほい!!! | 2009.10.25 03:58 午前


んーーーぅぅうぅうううもみもみいいいいい!

会った瞬間に「おぱいぱいー!」って言いながらワシワシ乳 揉んだら
相手も思いっきりティン コしごいてきてちょーノリノリだたよお!!!

ヤ る前から3 万くれて終わってからまた5 万くれたし何この魔法www

http://mata.yescompile.com/d6vipem/

投稿: やらねー奴バカだろ(^^; | 2009.11.02 10:57 午前


ぴゃー!!! お口ん中にたっぷり出してキタYO!!!

http://mika.acmahsjfms.com/qergdkh/

ずっと口あんぐり開けて待ってるもんだから
喉の奥に思いっきり当たって女の子ゲホゲホむせてたし(^^;
てか出した後すぐにまたおねだりしてきて懲りない女だったお(^ω^)

2回目は顔 射だったけどなwww(^Д^)ギャハハ!!

投稿: 精 液ぬらあああぁぁwww | 2009.11.07 04:58 午前


http://morimori.menslip.com/04-0djw/ ~-y(^.^;)これに群がる女ヤベwwwww
なんかよくわからんが寄ってくる女を適当に扱ってたら
ドM女が集まりまくっていつのまにか王様にされたしwwwwwww


ずっと童●だったんだが、早くこれやりゃよかったと後悔(^^;
ま!後悔した分毎晩やってるけどな!!(爆)

投稿: 40歳真っ黒チンボ | 2009.11.11 10:54 午後


こんだけ稼いだら神気取ってもいいだろwwwwwww

http://paipai.world-wife.com/j5ug-i6/


てか、ヤる事っつっても一緒に手淫して後は騎乗で
一方的に女に乱れてもらうだけなんだけどなwwwwwwww

今日もこれから5万稼いできやすwwwwwww楽すぎワロチwwwwww

投稿: ワタシハ神ダ | 2009.11.19 08:06 午前


言われた場所に着いたら女2人居てチョーびびったあぁぁぁwwww
3 Pって初めてだったせいか淡 白な僕がずっとオッキしてたよwwwww
なにより顔 騎&騎 乗のダブル攻めはヤバイっす!!!!!!
今回は天国イってもいいくらいだったけど
ちゃっかり報 酬は2人から回収しときますたヽ(´ー`)ノヒャホー!

http://rakuraku.nnstarterpp.net/yq0jcq1/

投稿: 何発イったっけ?wwww | 2009.11.19 08:20 午前


風-俗にすら行く勇気も金もなくて結局32年間童-貞・・・だから
前に教えてもらったのがチョイ気になってたし、とりまヤってみたwww
http://pyupyu.momoringo.net/o-7gy97/
えーこっちから何もアプローチしなくても楽勝でハメれたっす!ヽ(・∀・)ノ
お金も予想以上にいっぱい貰えるし会社も辞めてやりましたーよ(*´`ω´)/
あーー俺ってばなんで今までクソ真面目な人生送ってきたんだろ(T_T)

投稿: やっと卒業!!!!!!!!!!! | 2009.11.25 11:16 午前


> コウ君
童 貞ってチョー恥ずいと思ってたけど
教えてくれたやつのおかげで考え改めたわwwww
むしろ童 貞って声高らかに主張してるからな!(`・ω・´) b
http://niginigi.tamatamanigittayo.com/3sc5mto/

てかさー筆卸しされてからも結局関係続けてくれるし
別の女に童 貞って言ってもバレねーしぶっちゃけ何でもアリじゃね??wwww

投稿: ぶっはっっっ!!!! | 2009.12.02 02:42 午前

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: UIスレッドでのタイマー実行:

» 画面上へ [アルジャジーラが報じた]
サイエンス サイエンス 報復の殺人 [続きを読む]

受信: 2007.09.12 08:00 午後

« ステータスバーへのコンポーネント登録と削除 | トップページ