2分ごとにプロセスを開始するタイマーを備えたVS2012プロジェクトがあります。正常に動作しますが、プロジェクトが停止した後も実行を継続しているようです。私が持っているこれの唯一の兆候は、タイマー間隔でデータベースにエラーを記録しているということです。タイマーを明示的に停止する必要がありますか?停止ボタンを押すと、それはどのように行われますか?プロジェクトを閉じると、ロギングが停止します。
ティックイベント(RefreshBroadcast)はサイレントに失敗します(アプリが実行されていない場合)が、ログは正常に機能します。また、ログは、デフォルト(アプリケーション名など)を使用するため、構成ファイルにアクセスできないことを示します。ロギングコードもビューにエラーを表示することになっているため、最終的にVisual Studioは、エラービューウィンドウに「...で識別されるリソースがありません」と通知します。これは、私が別の場所でコーディングしているときにプロジェクトが停止したときに発生します。この後、DBへのロギングは停止します。
Public Sub New()
If Not System.Windows.Application.Current.MainWindow Is Nothing Then
_refreshBroadcastTimer = New System.Windows.Threading.DispatcherTimer()
AddHandler _refreshBroadcastTimer.Tick, AddressOf dispatcherTimer_Tick
If Debugger.IsAttached Then
_refreshBroadcastTimer.Interval = New TimeSpan(0, 0, 30)
Else
_refreshBroadcastTimer.Interval = New TimeSpan(0, 0, My.Settings.RefreshBroadcastIntervalMinutes * 60) ' change to seconds
End If
_refreshBroadcastTimer.Start()
End If
End Sub
Private Sub dispatcherTimer_Tick(sender As Object, e As EventArgs)
Try
RefreshBroadcast()
Catch ex As Exception
LogException(ex)
End Try
End Sub