一定の間隔でアクションを実行するWindowsサービス内でスリープの代わりにタイマーを使用したいと思います。Windowsサービス内のタイマーを使用する
私は次のクラスがあると言います。
class MailManagerClient
{
//fields
string someString
//Constructor
public MailManagerClient()
{
aTimer = new System.Timers.Timer(30000);
aTimer.Elapsed += new ElapsedEventHandler(OnTimedEvent);
aTimer.Enabled = true
}
//methode
public bool DoSomthingIncConstantInterval()
{
//Do Somthing
return true;
}
private static void OnTimedEvent(object source, ElapsedEventArgs e)
{
DoSomthingIncConstantInterval()
}
}
そして私もOnStart
方法でWindowsサービスを持っています。
OnStart
メソッドでは、タイプMailManagerClient
の新しいスレッドを開始する必要があります。
スレッドをどのように開始すればよいですか?どちらのメソッドを新しいスレッドのエントリポイントにする必要がありますか?
スレッドはどのように生き残るべきですか?
MailManagerClient m;
var th = new Thread(()=>m=new MailManagerClient());
th.Start();
多分あなたはquartz.netを見ておくべきでしょう、私はあなたの目的をはるかに良くするだろうと思っています。 – alxbrd
[System.Reactive.Linq](http://msdn.microsoft.com/en-us/library/hh229435(v=103).aspx)のObservable.Timerも同様に検討する必要があります。 –