- PR -

【VB.NET】WindowsサービスのTimer制御

1
投稿者投稿内容
ひかる
会議室デビュー日: 2003/10/23
投稿数: 8
投稿日時: 2004-01-05 20:32
VB.NETでWindowsサービスアプリケーションを2本作成しました。
どちらもTimer1としてSystem.Timers.Timerを使用。
インターバルはサービス1が0.5秒、サービス2が10秒です。
どちらのサービスも下記のようなアプリケーション構造になっており、
Timer1のインターバル間隔でループさせています。

この2つのサービスを同時に立ち上げると、なぜかどちらかのサービス
がTimer1.Enabled = True の後、停止してしまいTimer1_Elapsedの先頭に
戻らず止まってしまうのです。
Exceptionに入っているわけでもありません。

何かリソースを共有しているのでしょうか。
以下に2つのサービスのTimerにかかわる部分を記述します。
(処理の内容は違いますが、Timerの制御はまったく同じです)

どなたかアドバイスをお願いできないでしょうか。

---------------------------------------------------------------------------

<Public Classの停止>
Friend WithEvents Timer1 As System.Timers.Timer
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
Me.Timer1 = New System.Timers.Timer()
CType(Me.Timer1, System.ComponentModel.ISupportInitialize).BeginInit()

<Timer1関数>
Private Sub Timer1_Elapsed(ByVal sender As Object, _
ByVal e As System.Timers.ElapsedEventArgs _
) Handles Timer1.Elapsed
Try
Timer1.Enabled = False
---メイン処理---
Timer1.Enabled = True
---> ここのデバッグコードを最後に、Timer1の先頭に戻らなくなることがあります。
Catch ex As Exception
---Exp処理---
End Try
End Sub

1

スキルアップ/キャリアアップ(JOB@IT)