C # - Использование метода OnStart для вызова потока - PullRequest
3 голосов
/ 23 июня 2011

Я создаю Службу Windows в C #, и у меня есть метод OnStart, вся моя логика бизнеса находится в файле с именем code.cs, как я могу сказать методу OnStart для вызова метода stater «starter»code.cs?

/// <summary>
/// OnStart: Put startup code here
///  - Start threads, get inital data, etc.
/// </summary>
/// <param name="args"></param>
protected override void OnStart(string[] args)
{
    base.OnStart(args);
}

Ответы [ 2 ]

2 голосов
/ 23 июня 2011

OnStart необходимо вернуть, чтобы Windows знала, что служба запущена.Вы должны запустить новый поток в OnStart, который вызывает ваш стартер.Примерно так:

protected override void OnStart(string[] args)
{
    Thread MyThread = new Thread(new ThreadStart(MyThreadStarter));
    MyThread.Start();

    base.OnStart(args);
}

private void MyThreadStarter()
{
    MyClass obj = new MyClass();
    obj.Starter();
}

Предполагается, что ваш текущий метод Starter не порождает собственный поток.Ключ должен позволить OnStart вернуться.

0 голосов
/ 23 июня 2011

Вам нужно будет создать экземпляр объекта и вызвать метод для экземпляра.

* 1003 Е.Г. *

CodeMyClass obj = new CodeMyClass();
obj.Starter();

//Replace CodeMyClass with the Type name. or if it is a single call the appropriate constructor.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...