Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB .NET > Таймер в службе не работает..


Автор: yur1221 19.7.2011, 23:27
Помогите с проблемой. Служба инсталируется, запускается, но не срабатывает событие, когда запускается процесс допустим Тотал Коммандера. Ошибок не пишет.
 Не пойму где лажа.

Код

Imports System
Imports System.ServiceProcess
Imports System.Diagnostics
Imports System.Timers
Public Class Service1
    Dim aa() As Process
    Protected Overrides Sub OnStart(ByVal args() As String)
        Timer1.Enabled = True
        Timer1.Interval = 5000
    End Sub
 
    Protected Overrides Sub OnStop()
        Timer1.Enabled = False
        Me.Dispose()
    End Sub
 
    Private Sub Timer_Tick(ByVal source As Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        aa = Process.GetProcessesByName("totalcmd")
        If aa.Length > 0 Then
            Timer1.Enabled = False
            MsgBox(aa.Length)
            OnStop()
        End If
    End Sub
 
End Class

Автор: diadiavova 20.7.2011, 10:44
Давно со службами не работал, но, насколько я помню, из службы окно вызвать нельзя. Попробуй вместо мессаджбокса добавить запись в журнал или еще что-нибудь в том же роде.

Автор: yur1221 20.7.2011, 11:02
Меседжбокс убирал, все равно не стопарится служба

Автор: yur1221 20.7.2011, 12:58
нашел причину..
вместо Me.Timer1 = New System.Windows.Form.Timer

надо юзать Me.Timer1 = New System.Timers.Timer и соответсвенно метод не tick а elapsed

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)