Сервисы Windows работают только при использовании messagebox.show Как этого избежать - PullRequest
1 голос
/ 11 января 2012

Это мой код

protected override void OnStart(string[] args)
{
    timAutoUpdate.Enabled = true;
    MessageBox.Show("started");
}

protected override void OnStop()
{
    timAutoUpdate.Enabled = false;
    System.Windows.Forms.MessageBox.Show("Service stopped");
}

private void timAutoUpdate_Tick(object sender, EventArgs e)
{
    MessageBox.Show("Ticked");
}

Отображается сообщение «Отмечено» после запуска события. Если я удаляю окно сообщения в событии Onstart, то событие Tick не работает. Оно не показывает никакого сообщения. Укажите причину этого. моего кода. Пожалуйста, скажите мне, как этого добиться.

 protected override void OnStart(string[] args)
{
    timAutoUpdate.Enabled = true;
}

protected override void OnStop()
{
    timAutoUpdate.Enabled = false;
}

private void timAutoUpdate_Tick(object sender, EventArgs e)
{
    MessageBox.Show("Ticked");
}

1 Ответ

0 голосов
/ 11 января 2012

Какой таймер вы используете?Это System.Windows.Forms.Timer?

, если это так, вам нужно изменить его, потому что этот таймер не работает со службой Windows (http://msdn.microsoft.com/en-us/magazine/cc164015.aspx)

Попробуйте этот код:

    protected override void OnStart(string[] args)
    {
        scheduleTimer = new System.Threading.Timer(new TimerCallback(AutoTick), null, 0, 3000);
        eventLogEmail.WriteEntry("Test");
    }
    private void AutoTick(object state)
    {
        MessageBox.Show("Ticked")
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...