[PR]
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
- Newer : ハムカツとトンカツの考察
- Older : 改めてSD画質の帯域について考える。
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
マルチスレッドで裏でごにょごにょしているものを作っていて、手元のマシン群では全くもってでなかったのだが、とあるところのとある人のマシンではなぜか画面の描画がちらちらっとするというお話があった。
画面はSwingで作っていて、方々みるが、ちらつきというと決まり文句しかでてこない。
だが問題はどうやらそこにはなくて、Swingだと元々ちらつかないよとか言われていたりしてこしゃくな!と思っていたところ(手元のマシンではないので再現しているかどうかチェックが難しかったというのもある)、しょうがねーなーと重いながらオフスクリーンバッファを用意して一瞬で書き換えてやる!とか意味不明なことを思っていました。
そのときぴらりんとひらめいたんですがマルチスレッドだから駄目なんじゃないかと。いや、実際は裏のスレッドはrepaintしか呼んでいなくて、多分大丈夫だと思っていたんですが、何のけなしにrepaintComponentにsynchronizedをつけたところぴたっと症状がおさまったようです。
のちのちに別の問題でInvokeLaterしないとだめとか、マルチスレッドにSwingは対応していないとか言われていましたが、repaintは大丈夫ということなんですがねぇ。意味がわかりませんでした。
2008/10/15 Programming Comment(0)
COMMENT
COMMENT FORM