ServiceBase.OnStart(String[]) Método

Definição

Quando implementado numa classe derivada, executa-se quando um comando Start é enviado ao serviço pelo Service Control Manager (SCM) ou quando o sistema operativo inicia (para um serviço que inicia automaticamente). Especifica as ações a tomar quando o serviço começa.

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 start.

Observações

Use OnStart para especificar o processamento que ocorre quando o serviço recebe um comando Start. OnStart é o método pelo qual especifica o comportamento do serviço. OnStart pode usar argumentos como forma de passar dados, mas esta utilização é rara.

Atenção

Não use o construtor para realizar um processamento que deveria estar em OnStart. Use OnStart para gerir toda a inicialização do seu serviço. O construtor é chamado quando o executável da aplicação é executado, não quando o serviço corre. O executável executa-se antes OnStartde . Quando continuas, por exemplo, o construtor não é chamado novamente porque o SCM já mantém o objeto em memória. Se OnStop libertar recursos alocados no construtor em vez de em OnStart, os recursos necessários não seriam criados novamente na segunda chamada do serviço.

Os serviços podem ser configurados para iniciar automaticamente quando o computador reinicia, definindo o StartType no instalador do serviço para Automatic. Nessa situação, OnStart seria chamado de arranque do sistema.

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

Argumentos de inicialização do processo para o serviço no OnStart método, não no método principal. Os argumentos no args array de parâmetros podem ser definidos manualmente na janela de propriedades do serviço na consola de Serviços. Os argumentos introduzidos na consola não são guardados; são encaminhadas para o serviço uma única vez quando o serviço é iniciado a partir do painel de controlo. Argumentos que devem estar presentes quando o serviço é iniciado automaticamente podem ser colocados no valor da cadeia ImagePath para a chave do registo do serviço (HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<nome> do serviço). Pode obter os argumentos do registo usando o GetCommandLineArgs método, por exemplo: string[] imagePathArgs = Environment.GetCommandLineArgs();.

Aplica-se a

Ver também