Wednesday 14 March 2018

Waitforexit não esperando


Waitforexit não está aguardando
Obter através da App Store Leia esta publicação em nosso aplicativo!
Process. WaitForExit não está aguardando.
Eu tenho o seguinte código e o método WaitForExit não está aguardando. Ele apenas executa o comando e passa para a próxima declaração. O comando é unintallall um aplicativo e os parms são para o comando de desinstalação. A desinstalação funciona bem, mas eu preciso da desinstalação para finalizar antes de seguir em frente. não está bloqueando.
Eu suspeito fortemente de que o comentário de Andrey está certo - o processo que você está iniciando é sair, mas ter iniciado um novo processo.
A maneira simples de descobrir isso é imprimir o processo. Id antes de chamar WaitForExit e tente encontrar esse processo no gerenciador de tarefas. Eu suspeito que você vai descobrir que não vai estar lá.
Você pode querer dar uma volta, dormindo brevemente enquanto espera por outro indicador da desinstalação sendo concluída - como um determinado arquivo ou entrada de registro sendo removido. Não é o ideal, mas pode ser o melhor que você tem.

Thread. WaitForExit () não está funcionando?
Thread. WaitForExit () não está funcionando?
Thread. WaitForExit () não está funcionando?
ProcessStartInfo myP = novo ProcessStartInfo ();
Mas quando eu mudar o "notepad. exe" com o software de fornecedor de terceiros que processa arquivos e assim por diante, "alles guttes" diretamente.
aparece e parece que myp. WaitForExit não está funcionando.
RE: Thread. WaitForExit () não está funcionando?
Não tenho certeza do que você deseja implementar, mas acho que você deve usar o evento Exited para capturar a finalização do processo:
//myp. StartInfo. UseShellExecute = false; // verifique se isso é necessário.
myp. Exited + = new EventHandler (captureExit);
System. Diagnostics. Process ps = (System. Diagnostics. Process) remetente;
(veja os métodos WaitOne (), WaitAny (), Wait ()).
Bandeira vermelha enviada.
Obrigado por ajudar a manter o Tek-Tips Forums livre de postagens inapropriadas.
O pessoal da Tek-Tips verificará isso e tomará as medidas adequadas.
Responda a este tópico.
O lançamento nos fóruns Tek-Tips é um recurso exclusivo para membros.
Direitos autorais e cópia; 1998-2018 engineering, Inc. Todos os direitos reservados.
Reprodução não autorizada ou ligação proibida sem permissão expressa por escrito. O registro ou uso deste site constitui aceitação de nossa Política de Privacidade.

Waitforexit não está aguardando
A sobrecarga WaitForExit () () () é usada para fazer o thread atual aguardar até o processo associado terminar. Esse método instrui o componente Processo a aguardar uma quantidade infinita de tempo para que o processo saia. Isso pode fazer com que um aplicativo pare de responder. Por exemplo, se você chamar CloseMainWindow para um processo que tenha uma interface de usuário, a solicitação ao sistema operacional para encerrar o processo associado pode não ser tratada se o processo for gravado para nunca entrar no loop de mensagem.
Esta sobrecarga garante que todo o processamento foi concluído, incluindo o tratamento de eventos assíncronos para saída padrão redirecionada. Você deve usar essa sobrecarga após uma chamada para a sobrecarga WaitForExit (Int32) quando a saída padrão foi redirecionada para manipuladores de eventos assíncronos.
Isso é, naturalmente, para. O que faz você pensar que não aguarda que o processo de nota termine? Quais são os sinais disso? Qual é a prova?
Processo p = novo Processo ();
MessageBox. Show (& quot; agora o navegador deve estar fechado & quot;);
Exceto que você não obtém um objeto de processo que você pode usar. Se você tentar.
Dim myProc como novo processo ()
myProc = Process. Start (& quot; iexplore & quot ;, & quot; finance. yahoo/q/hp? s = & quot; + symbol);
A Microsoft está conduzindo uma pesquisa on-line para entender sua opinião sobre o site da Msdn. Se você optar por participar, a pesquisa on-line será apresentada quando você sair do site do Msdn.

Waitforexit não espera
Eu quero executar a configuração do SqlExpress através da linha de comando, então estou usando o objeto de processo para isso, e depois de completar minha configuração do Sql Express, eu quero executar Script do banco de dados para a instância atualmente instalada do Sql Express.
Eu escrevi o código como abaixo.
Neste WaitForExit () não funciona, ele interrompe a configuração do Sql Express.
Por favor, sugira se estou fazendo algo errado ou sugiro que haja outra forma de esperar pela conclusão do processo.
Agradeço antecipadamente.
Meu problema resolvido. Eu usei de outra maneira. Eu executei o código acima no meu aplicativo em vez de projeto de instalação.
Então eu executo a instalação do Sql Express no momento da execução do aplicativo.
Marcado como resposta por Michael Sun [MSFT] empregado da Microsoft, Moderador terça-feira, 25 de outubro de 2011 1:21 AM.
Todas as respostas.
Basta chamar WaitForExit () para um processo não deve ter qualquer efeito nesse processo, então acho que está acontecendo algo mais aqui.
Bem-vindo aos fóruns do MSDN!
Eu concordo com Matthew. Você pode nos informar qual é a configuração do SqlExpress que está usando? É o arquivo de instalação do Microsoft SQL Server Express ou qualquer arquivo executável que você criou?
Michael Sun [MSFT]
Como está o problema agora? Se precisar de ajuda, sinta-se à vontade para me dizer.
Tenha um bom dia!
Michael Sun [MSFT]
O meu problema foi resolvido. Usei outra maneira. Executei o código acima na minha aplicação em vez do projeto de instalação.
Então eu executo a instalação do Sql Express no momento da execução do aplicativo.
Marcado como resposta por Michael Sun [MSFT] empregado da Microsoft, Moderador terça-feira, 25 de outubro de 2011 1:21 AM.
Fico feliz em ouvir isso!
Michael Sun [MSFT]
Lembre-se de marcar as respostas como respostas se elas ajudarem e desmarcar se não fornecem ajuda.
A Microsoft está conduzindo uma pesquisa on-line para entender sua opinião sobre o site da Msdn. Se você optar por participar, a pesquisa on-line será apresentada quando você sair do site do Msdn.

Processo . Método WaitForExit ()
A documentação de referência da API tem uma nova casa. Visite o navegador da API no docs. microsoft para ver a nova experiência.
Instrui o componente Processo a esperar indefinidamente para que o processo associado saia.
Assembly: System (no System. dll)
A configuração de espera não pôde ser acessada.
Nenhum Id do processo foi configurado e um identificador do qual a propriedade Id pode ser determinada não existe.
Não existe nenhum processo associado a este objeto Processo.
Você está tentando chamar WaitForExit () para um processo que está sendo executado em um computador remoto. Este método está disponível somente para processos que estão sendo executados no computador local.
WaitForExit () faz o thread atual aguardar até o processo associado terminar. Ele deve ser chamado após todos os outros métodos serem chamados no processo. Para evitar o bloqueio do segmento atual, use o evento Exitado.
Esse método instrui o componente Processo a aguardar uma quantidade infinita de tempo para que o processo e os manipuladores de eventos saem. Isso pode fazer com que um aplicativo pare de responder. Por exemplo, se você chamar CloseMainWindow para um processo que tenha uma interface de usuário, a solicitação ao sistema operacional para encerrar o processo associado pode não ser tratada se o processo for gravado para nunca entrar no loop de mensagem.
No Quadro 3.5 e versões anteriores, a sobrecarga WaitForExit () esperava milissegundos MaxValue (aproximadamente 24 dias), não indefinidamente. Além disso, as versões anteriores não esperaram que os manipuladores de eventos saíssem se o tempo MaxValue completo fosse atingido.
Esta sobrecarga garante que todo o processamento foi concluído, incluindo o tratamento de eventos assíncronos para saída padrão redirecionada. Você deve usar essa sobrecarga após uma chamada para a sobrecarga WaitForExit (Int32) quando a saída padrão foi redirecionada para manipuladores de eventos assíncronos.
Quando um processo associado sai (ou seja, quando é encerrado pelo sistema de operação através de um término normal ou anormal), o sistema armazena informações administrativas sobre o processo e retorna ao componente que chamou WaitForExit (). O componente Processo pode acessar a informação, que inclui o ExitTime, usando o Handle para o processo encerrado.
Como o processo associado saiu, a propriedade Handle do componente já não aponta para um recurso de processo existente. Em vez disso, o identificador pode ser usado apenas para acessar as informações do sistema operacional sobre o recurso do processo. O sistema está ciente de manipulações para processos que não foram lançados pelos componentes do Processo, portanto, mantém as informações ExitTime e Handle na memória até que o componente Processo liberte especificamente os recursos. Por esse motivo, sempre que você ligar para uma instância do Start for Process, chame Close quando o processo associado for encerrado e você não precisa mais de informações administrativas sobre isso. Close libera a memória alocada para o processo finalizado.
Consulte a seção Comentários da página de referência da propriedade StandardError.
para confiança total para o chamador imediato. Este membro não pode ser usado por código parcialmente confiável.

Thread. WaitForExit () não está funcionando?
Thread. WaitForExit () não está funcionando?
Thread. WaitForExit () não está funcionando?
ProcessStartInfo myP = novo ProcessStartInfo ();
Mas quando eu mudar o "notepad. exe" com o software de fornecedor de terceiros que processa arquivos e assim por diante, "alles guttes" diretamente.
aparece e parece que myp. WaitForExit não está funcionando.
RE: Thread. WaitForExit () não está funcionando?
Não tenho certeza do que você deseja implementar, mas acho que você deve usar o evento Exited para capturar a finalização do processo:
//myp. StartInfo. UseShellExecute = false; // verifique se isso é necessário.
myp. Exited + = new EventHandler (captureExit);
System. Diagnostics. Process ps = (System. Diagnostics. Process) remetente;
(veja os métodos WaitOne (), WaitAny (), Wait ()).
Bandeira vermelha enviada.
Obrigado por ajudar a manter o Tek-Tips Forums livre de postagens inapropriadas.
O pessoal da Tek-Tips verificará isso e tomará as medidas adequadas.
Responda a este tópico.
O lançamento nos fóruns Tek-Tips é um recurso exclusivo para membros.
Direitos autorais e cópia; 1998-2018 engineering, Inc. Todos os direitos reservados.
Reprodução não autorizada ou ligação proibida sem permissão expressa por escrito. O registro ou uso deste site constitui aceitação de nossa Política de Privacidade.

No comments:

Post a Comment