Friday 24 November 2017

Waitforexit não está esperando por amor


Thread. WaitForExit () não está funcionando Eu tenho um programa que executa o bloco de notas como este: ProcessStartInfo myP new ProcessStartInfo () using (Processo myp new Process ()) myp. StartInfo myP try myp. Start () myp. WaitForExit () Console. WriteLine (alles guttes) catch Console. WriteLine (falha) Isso está funcionando bem, todos os guttes serão executados depois de fechar o Notepad. Mas quando eu mudar o notepad. exe com o software de fornecedor de terceiros que processam arquivos e assim por diante, todos os guttes aparecem diretamente e parece que myp. WaitForExit não está funcionando. Eu perdi alguma coisa RE: Thread. WaitForExit () não está funcionando obislavu (Programmer) 21 Jan 05 09:27 O método WaitForExit () instrui o componente do processo a aguardar o número especificado de milissegundos ou indefinidamente para que o processo associado saia. Não tenho certeza do que você deseja implementar, mas acho que você deve usar o evento Exitado para capturar o término do processo: System. Diagnostics. Process myp new System. Diagnostics. Process (). Myp. EnableRaisingEvents true myp. StartInfo. UseShellExecute verificação falsa se isso for necessário myp. Exited new EventHandler (captureExit) myp. WaitForExit () myp. Start () private void captureExit (remetente de objeto, EventArgs e) System. Diagnostics. Process ps ( System. Diagnostics. Process) smer Combinar isso com objetos Mutex ou Monitor para controlar o segmento atual. (Veja os métodos WaitOne (), WaitAny (), Wait ()). - obislavu - Red Flag Enviado Obrigado por ajudar a manter os Fóruns Tek-Tips grátis de postagens inapropriadas. O pessoal da Tek-Tips verificará isso e tomará as medidas apropriadas. Responder a este tópico O lançamento nos fóruns Tek-Tips é um recurso exclusivo para membros. Clique aqui para se juntar ao Tek-Tips e conversar com outros membros. Leia o que o MSDN diz sobre isso: A sobrecarga WaitForExit () () () é usada para fazer o thread atual aguardar até o processo associado terminar. Este método instrui o componente de processo para aguardar uma quantidade infinita de tempo para o processo para sair. 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. Essa sobrecarga garante que todo o processamento foi concluído, incluindo o tratamento de eventos assíncronos para a 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 Note termine. Quais são os sinais disso. Qual é a prova sexta-feira, 20 de fevereiro de 2009 8:13 PM Não tenho certeza se isso mudou recentemente, mas de volta no dia aplicações na janela O celular nunca foi realmente fechado quando bateu no X para fechá-los, eles apenas minimizariam e continuavam funcionando em segundo plano (isso não era um bug, era um recurso, já que da próxima vez que você iniciar o aplicativo, ele seria iniciado com muita rapidez, yah Eu sei, insano, mas verdadeiro), então, por isso, o WaitForExit talvez esteja se comportando estranhamente e aguardando a inicialização do aplicativo em vez de sair. Mas, novamente, é apenas uma especulação baseada em conhecimentos de versões antigas do Windows Mobile. Sexta-feira, 20 de fevereiro de 2009 11:03 PM Eu gostaria de colidir esta questão. Estou no Windows Mobile 6 Standard e estou tentando gerar uma instância do navegador. Gostaria de aguardar até o usuário fechar o navegador. Mas WaitForExit retorna extremamente rápido. Aqui está o código: Processo p novo Processo () p. StartInfo. Argumentos quotexample-sitequot p. StartInfo. Verb quotOpenquot p. StartInfo. UseShellExecute falso p. StartInfo. FileName quotIExplore. exequot p. Start () p. WaitForExit () MessageBox. Show (quotNow o navegador deve ser closedquot) Qual deve ser o caminho certo para obter os reencontros esperados Segunda-feira, 08 de junho de 2009 22:45 Onde está o símbolo. símbolo. AlexB Terça, 09 de junho de 2009 9:58 PM Estou vendo o mesmo problema, mas no XP. Eu acho que a prova pode ser vista em qualquer depurador (como estou vendo), ou em qualquer aplicativo de console (não necessariamente no celular) quarta-feira, 02 de setembro de 2009 8:35 PM Exceto que você não obtém um objeto de processo que você pode usar. Se você tentar DimProjetos NovosProcessos () myProc Process. Start (quotiexplorequot, quotfinance. yahooqhpsquot symbol) myProc. WaitForExit () Ele ainda retorna imediatamente. Quarta-feira, 2 de setembro de 2009 8:48 PM O problema é que você não está iniciando uma nova instância de iexplore. exe. Você está apenas criando uma nova janela no processo existente. O meu palpite é que iexplore. exe começa, vê uma instância anterior e se comunica com a instância anterior para que ela abre a nova janela, e então essa instância que você iniciou sai imediatamente. Portanto, o comportamento é correto e esperado. Blog. voidnish quarta-feira, 2 de setembro de 2009 8:52 PM A Microsoft está realizando 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 a você quando você deixar o site Msdn. Você gostaria de participar

No comments:

Post a Comment