Compartilhar via


ServiceBase.OnStart(String[]) Método

Definição

Quando implementado em uma classe derivada, é executado quando um comando Iniciar é enviado para o serviço pelo SCM (Gerenciador de Controle de Serviço) ou quando o sistema operacional é iniciado (para um serviço que inicia automaticamente). Especifica ações a serem tomadas quando o serviço for 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 de início.

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.

Cuidado

Não use o construtor para executar o processamento em OnStartque deve estar . 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 dentro OnStart, os recursos necessários não serão criados novamente na segunda vez em que o serviço for chamado.

Os serviços podem ser definidos para iniciar automaticamente quando o computador reinicializa definindo o StartType instalador do serviço como Automatic. Nessa 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 dos Serviços. Os argumentos inseridos no console não são salvos; eles são passados para o serviço uma única vez quando o serviço é iniciado no 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\<service name>). Você pode obter os argumentos do registro usando o GetCommandLineArgs método, por exemplo: string[] imagePathArgs = Environment.GetCommandLineArgs();.

Aplica-se a

Confira também