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

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

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

Re[2]: SynchronizingObjectの使い方


(過去ログ 66 を表示中)

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

■38378 / inTopicNo.1)  SynchronizingObjectの使い方
  
□投稿者/ BTL (1回)-(2009/07/12(Sun) 21:08:35)

分類:[VB.NET/VB2005 以降] 

はじめまして、BTLと申します。
いつも参考にさせて頂いています。

Windowサービスで、System.Timers.Timer クラスと
System.IO.FileSystemWatcher クラスのイベントの発生を
契機に処理を実行させるプログラムを作っています。
TimerクラスとFileSystemWatcherクラスが別スレッドで
動いてるためか同時に複数のイベントが発生した場合に
複数の処理が同時に実行されているようです。
SynchronizingObjectを設定するとメインスレッドで動作するようですが
Windowsサービスの場合、SynchronizingObjectに
何を設定すればよろしいのでしょうか?

ご存じの方がいらっしゃいましたら、よろしくお願い致します。

開発環境
Visual Basic 2008
.Net Framework 3.5
引用返信 編集キー/
■38384 / inTopicNo.2)  Re[1]: SynchronizingObjectの使い方
□投稿者/ なちゃ (312回)-(2009/07/13(Mon) 12:03:24)
No38378 (BTL さん) に返信
> SynchronizingObjectを設定するとメインスレッドで動作するようですが
> Windowsサービスの場合、SynchronizingObjectに
> 何を設定すればよろしいのでしょうか?

これはほぼWindowsフォーム専用の機能ですので、そのままサービスで単純に使うことは出来ないはずです。
非表示のコントロールを作成して、Application.Runを自分で呼び出してメッセージループを作成すれば出来るかもしれません。
あるいは、イベントハンドラで自分で同期とるなりする事です。

まあその前に、なぜ同じスレッドにしたいのか、単にタイミングの問題なのか、
その辺りを明確にする必要がありますけど。

引用返信 編集キー/
■38419 / inTopicNo.3)  Re[2]: SynchronizingObjectの使い方
□投稿者/ BTL (2回)-(2009/07/13(Mon) 22:17:59)
なちゃ様、ご回答ありがとうございます。

SynchronizingObjectはサービスで使うことができないのですね。
今回はタイミングの問題なので、自分で同期をとる方向で検討してみます。



解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -