ServiceBase.OnStart(String[]) Método

Definição

Quando implementado em uma classe derivada, é executado quando um comando Iniciar é enviado ao serviço pelo SCM (Service Control Manager) ou quando o sistema operacional é iniciado (para um serviço que é iniciado automaticamente). Especifica as ações a serem executadas quando o serviço é iniciado.

protected:
 virtual void OnStart(cli::array <System::String ^> ^ args);
protected virtual void OnStart(string[] args);
abstract member OnStart : string[] -> unit
override this.OnStart : string[] -> unit
Protected Overridable Sub OnStart (args As String())

Parâmetros

args
String[]

Dados passados pelo comando iniciar.

Comentários

Use OnStart para especificar o processamento que ocorre quando o serviço recebe um comando Iniciar. OnStart é o método no qual você especifica o comportamento do serviço. OnStart pode usar argumentos como uma maneira de passar dados, mas esse uso é raro.

Caution

Não use o construtor para executar o processamento que deve estar em OnStart. Use OnStart para lidar com toda a inicialização do serviço. O construtor é chamado quando o executável do aplicativo é executado, não quando o serviço é executado. O executável é executado antes OnStart. Quando você continua, por exemplo, o construtor não é chamado novamente porque o SCM já contém o objeto na memória. Se OnStop liberar recursos alocados no construtor em vez de entrar, os recursos necessários não serão criados novamente na segunda vez em OnStartque o serviço for chamado.

Os serviços podem ser definidos para iniciar automaticamente quando o computador é reinicializado definindo o StartType instalador do serviço como Automatic. Em tal situação, OnStart seria chamado na inicialização do sistema.

OnStart espera-se que seja substituído na classe derivada. Para que o serviço seja útil OnStart e OnStop ambos devem ser implementados em sua classe de serviço.

Processe argumentos de inicialização para o serviço no OnStart método, não no método Main. Os argumentos na matriz de args parâmetros podem ser definidos manualmente na janela de propriedades do serviço no console de Serviços. Os argumentos inseridos no console não são salvos; eles são passados para o serviço uma vez quando o serviço é iniciado a partir do painel de controle. Os argumentos que devem estar presentes quando o serviço é iniciado automaticamente podem ser colocados no valor da cadeia de caracteres ImagePath para a chave do registro do serviço (HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<nome> do serviço). Você pode obter os argumentos do registro usando o GetCommandLineArgs método, por exemplo: string[] imagePathArgs = Environment.GetCommandLineArgs();.

Aplica-se a

Confira também