Friday 8 December 2017

Waitforexit process c # exemplo programas


Então, estou lutando por esse problema por algum tempo agora e tentei muitas maneiras diferentes de corrigi-lo, mas não posso. Basicamente, o meu aplicativo faz é chamar um arquivo java para carregar um aplicativo em um dispositivo. Enquanto está carregando sua impressão para uma caixa de richtext, então eu gostaria de passar para o próximo arquivo. O problema que estou tendo é que, enquanto o primeiro arquivo está sendo carregado, o 2º tenta carregar quais problemas de casos. Eu tentei a espera para a saída, mas se eu fizer isso, então os dados de saída não são escritos na caixa de texto rica. Qualquer ideia que tentei colocar a espera para a saída em muitos lugares diferentes, mas isso não parece funcionar. Dois métodos abaixo escrevem o stdout ou erro no campo richtext. Qualquer ideia seria excelente. Basicamente, preciso do processo para sair, então eu posso continuar a pensar que o forloop carrega o próximo arquivo. Você está recebendo algum tipo de mensagem de erro. Parece-me que seus argumentos são - Xmx512M - jar. Falta um espaço após a opção de linha de comando - jar. Isso poderia estar fazendo com que ele simplesmente saia imediatamente devido a não poder entender o comando. Além disso, como sugeriu M. Babcock, mova o método loaddPB fora do segmento UI e certifique-se de que envolve a parte de carregamento em um semáforo, dessa forma apenas um único arquivo é carregado de cada vez e a IU pode continuar a fazer o que precisa façam. Ndash SPFiredrake 9 de fevereiro às 15:29 Esteja avisado que isso é um pouco quotackishquot em que você ainda está bloqueando o segmento UI, mas você está bombeando manualmente os eventos através da fila de mensagens. Esta não é uma prática recomendada, e a maioria dos desenvolvedores recomendará contra ela. A melhor opção é lançar o código de carregamento em um segmento separado. Ndash SPFiredrake 9 de fevereiro às 15: 54 Eu tenho uma situação em que eu quero executar um arquivo e, em seguida, exclua o arquivo executável quando a execução estiver concluída. Eu uso System. Diagnostics. Process. Start () para executar o arquivo e use. WaitForExit () para aguardar a conclusão do processo. Eu então uso File. Delete (filename) para excluir o arquivo executável. O problema é que às vezes, File. Delete falhará com o seguinte erro: Isso me leva a acreditar que, de alguma forma, o processo ainda está vivo e bloqueando o arquivo executável mesmo depois que a chamada. WaitForExit () retorna. Eu encontrei outros tópicos na rede que descrevem o mesmo comportamento, mas não encontrei nenhum que conclua com uma explicação ou solução razoável para o problema, além das sugestões de colocar Sleep (n) após o WaitForExit (). Exemplos: Aqui está um programa de exemplo que reproduz o problema para mim. Testei tanto no Windows XP quanto no Windows 7, e ambos, eventualmente, falham em algum momento com o mesmo erro. Observe também que o executável ss. exe é um aplicativo simples e simples do console quotHello Worldquot. E a saída normalmente se parece com algo (com quantidade variável de iterações antes da ocorrência da falha): Qualquer idéia de por que isso acontece, e se houver alguma correção para isso (além de colocar dorme no código) Sexta-feira, 08 de janeiro de 2010 3 : 40 PM O motivo é que, embora o processo seja concluído, pode demorar alguns milissegundos para o sistema operacional para terminar destruindo. É um sistema operacional multitarefa, está tentando atender todos ao mesmo tempo. Desnecessariamente, não há como saber quando o arquivo não está mais bloqueado (prescindamente). Quando WaitForExit, você está criando um objeto de bloqueio no objeto de processo. O objeto do processo não pode ser destruído até que o bloqueio seja liberado e você não pode esperar em algo que não existe (tipo de frango e ovo). Então, a única coisa razoável que você pode fazer é continuar tentando, algo como: Marcado como resposta por Samuel Stanojevic sexta-feira, 08 de janeiro de 2010 16:20 Editado por Tergiver sexta-feira, 08 de janeiro de 2010 4:20 PM mudou para bool, loop infinito Revisão sexta-feira, 8 de janeiro de 2010 16:15 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 quando você deixar o site Msdn. Você gostaria de participar

No comments:

Post a Comment