C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[6]: ポーリング処理


(過去ログ 35 を表示中)

[トピック内 8 記事 (1 - 8 表示)]  << 0 >>

■17920 / inTopicNo.1)  ポーリング処理
  
□投稿者/ tanaka (27回)-(2008/05/03(Sat) 23:24:40)

分類:[C#] 

メイン処理とは別に1秒間隔で別の処理をさせる場合どちらの方法がいいのでしょうか。
ポーリング処理は状態ステータスの取得・表示だけなので優先順位や厳格な処理時間などは考慮しません。

1:Form_Loadでポーリング処理をスレッド生成してThread.Sleep(1000)で処理
2:Timerコントロールで1秒間隔でイベント発生させてポーリング処理
引用返信 編集キー/
■17921 / inTopicNo.2)  Re[1]: ポーリング処理
□投稿者/ 中博俊 (1285回)-(2008/05/04(Sun) 00:07:40)
中博俊 さんの Web サイト
それだけなら2でいいんじゃない?
引用返信 編集キー/
■17926 / inTopicNo.3)  Re[2]: ポーリング処理
□投稿者/ 出水 (47回)-(2008/05/04(Sun) 03:19:49)
私も中さんの意見に一票
ロックとか考えなくていいし
引用返信 編集キー/
■17930 / inTopicNo.4)  Re[3]: ポーリング処理
□投稿者/ ちゃっぴ (105回)-(2008/05/04(Sun) 11:04:26)
ちゃっぴ さんの Web サイト
No17926 (出水 さん) に返信
> ロックとか考えなくていいし

え、そうなんですか?
どっちも割り込み考えると厳密には必要な気がしますが。。。

ちなみに System.Windows.Forms.Timer ですよね?
引用返信 編集キー/
■17931 / inTopicNo.5)  Re[4]: ポーリング処理
□投稿者/ 組込系の人 (17回)-(2008/05/04(Sun) 13:34:59)
Timerだと、メインスレッドのイベント処理で
スレッドだと別スレッドになるからロックとかの排他処理が必要。

みたいな感覚だったんですが違いましたっけ?
引用返信 編集キー/
■17932 / inTopicNo.6)  Re[5]: ポーリング処理
□投稿者/ Azulean (99回)-(2008/05/04(Sun) 13:50:22)
No17931 (組込系の人 さん) に返信
> Timerだと、メインスレッドのイベント処理で
> スレッドだと別スレッドになるからロックとかの排他処理が必要。
Timerといっても、同じ名前でいくつもあります。
System.Windows.Forms.Timerについては張り付いているフォームと同じスレッドで動くことが保証されていますが、他のものは別スレッドで実行されることになります。

System.Windows.Forms.Timer
System.Threading.Timer
System.Timers.Timer

割り込みはコールバック関数が別スレッドで呼ばれるようなパターンかなと推測しますが、具体的にどのような状況で問題になるかまでは見当がついていません。
引用返信 編集キー/
■17933 / inTopicNo.7)  Re[6]: ポーリング処理
□投稿者/ tanaka (28回)-(2008/05/04(Sun) 14:41:59)
皆様さまざまなご意見ありがとうございました。

書としては2の方ですることにしました。
ちなみにSystem.Windows.Forms.Timerでフォームに張り付いております。(フォームは1つ)
排他処理も必要ないと思います。

解決済み
引用返信 編集キー/
■17936 / inTopicNo.8)  Re[6]: ポーリング処理
□投稿者/ 組込系の人 (18回)-(2008/05/04(Sun) 16:16:50)
No17932 (Azulean さん) に返信

> Timerといっても、同じ名前でいくつもあります。
> System.Windows.Forms.Timerについては張り付いているフォームと同じスレッドで動くことが保証されていますが、他のものは別スレッドで実行されることになります。
>
> System.Windows.Forms.Timer
> System.Threading.Timer
> System.Timers.Timer
>
> 割り込みはコールバック関数が別スレッドで呼ばれるようなパターンかなと推測しますが、具体的にどのような状況で問題になるかまでは見当がついていません。

解決済みの物に返信するのは、ちょっと気が引けますが、

System.Threading.Timerについては理解していたんですが、
System.Timers.Timerというものもあるんですね。
勉強になりました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -