вторник, 26 июня 2018 г.

C # waitforexit


C # waitforexit
Eu tenho trabalhado no meu projeto da empresa. Eu notei esse problema, quando eu chamo de um Exe para outro Exe. Durante o arrasto do formulário no segundo Exe, ele mostrará vários formulários. Eu estou usando WaitforExit ().
por favor resolva.
Esta é exatamente a causa do problema. Se WaitForExit é chamado do thread do formulário, ele impedirá que o formulário seja redesenhado. Arrastar algo na frente de uma janela bloqueada deixa um rastro da janela arrastada.
Sugerido como Resposta ahmedilyas Moderador quinta-feira, 28 de julho de 2011 10:34 Marcado como Resposta Jackie-Sun Moderador segunda-feira, 8 de agosto de 2011 6:50.
O código seria melhor e também seria melhor se você pudesse nos dizer exatamente o que está tentando alcançar.
O WaitForExit () simplesmente espera (bloqueia seu código por este período) para um processo sair antes de continuar com a execução do seu código de chamada.
C # MVP (2007-2010) MS Vendor - MS Todo o caminho! Seguidor desde 1995 MS Super Evangelist | Moderador dos fóruns do MSDN.
Sugerido como Resposta ahmedilyas Moderador quinta-feira, 28 de julho de 2011 10:33 Marcado como Resposta Jackie-Sun Moderador segunda-feira, 8 de agosto de 2011 6:50.
Todas as respostas.
O código seria melhor e também seria melhor se você pudesse nos dizer exatamente o que está tentando alcançar.
O WaitForExit () simplesmente espera (bloqueia seu código por este período) para um processo sair antes de continuar com a execução do seu código de chamada.
C # MVP (2007-2010) MS Vendor - MS Todo o caminho! Seguidor desde 1995 MS Super Evangelist | Moderador dos fóruns do MSDN.
Sugerido como Resposta ahmedilyas Moderador quinta-feira, 28 de julho de 2011 10:33 Marcado como Resposta Jackie-Sun Moderador segunda-feira, 8 de agosto de 2011 6:50.
Eu tinha check. it tem problema em waitforexit () only. i notei que o problema ao mover segundo formulário exe.
o que exatamente é o problema? você leu minha resposta? você também leu o link que eu havia fornecido?
WaitForExit () é um método de bloqueio de threads que fará exatamente isso - espere que um processo saia antes que ele continue com seu código. ele NÃO fará com que seu formulário seja ocultado ou minimizado, a menos que você diga ao seu código para fazer isso antes de chamar WaitForExit ()
C # MVP (2007-2010) MS Vendor - MS Todo o caminho! Seguidor desde 1995 MS Super Evangelist | Moderador dos fóruns do MSDN.
Tudo está funcionando bem. mas quando eu movo o formulário, ele mostra várias formas.
Esta é exatamente a causa do problema. Se WaitForExit é chamado do thread do formulário, ele impedirá que o formulário seja redesenhado. Arrastar algo na frente de uma janela bloqueada deixa um rastro da janela arrastada.
Sugerido como Resposta ahmedilyas Moderador quinta-feira, 28 de julho de 2011 10:34 Marcado como Resposta Jackie-Sun Moderador segunda-feira, 8 de agosto de 2011 6:50.
quando você diz mostrando vários formulários - você está falando sobre várias instâncias dos formulários ou apenas o desenho / renderização?
se for o desenho / renderização, então sim, como foi dito antes - é porque ele está esperando o processo sair / terminar antes de continuar e é threadblocking, então você verá o problema & quot; problem & quot; você está parecendo estar descrevendo. Não há & quot; corrigir & quot; por isso, como não é um bug ou um problema, mas apenas o que você está usando e como você está usando.
Existe uma razão pela qual você está usando WaitForExit ()? Você tem que mostrar seu formulário quando você está usando WaitForExit ()? Por que você não esconde ou minimiza o formulário antes de chamar WaitForExit () e restaurá-lo depois?
C # MVP (2007-2010) MS Vendor - MS Todo o caminho! Seguidor desde 1995 MS Super Evangelist | Moderador dos fóruns do MSDN.

C # waitforexit
Então eu tenho lutado contra esse problema por algum tempo e tentei muitas maneiras diferentes de consertá-lo, mas não consegui.
Bascally que meu aplicativo faz é chama um arquivo java para carregar um aplicativo em um dispositivo. Enquanto ele está carregando, ele está imprimindo para uma caixa 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 segundo tenta carregar quais problemas de casos. Eu tentei a espera pela saída, mas se eu fizer isso, os dados de saída não serão gravados na caixa rich text. Alguma ideia?
Eu tentei colocar a espera pela saída em muitos lugares diferentes, mas parece que não funciona.
Dois métodos abaixo escrevem o stdout ou erro para o campo richtext.
Qualquer ideia seria ótima. Bascally eu preciso do processo para sair, então eu posso continuar pensando o forloop para carregar o próximo arquivo.
Se você WaitForExit, seu aplicativo bloqueia (aguarda) até que o processo saia. Isso significa que não é possível processar nenhuma mensagem do Windows em seu thread da interface do usuário, portanto, ela não atualiza a interface do usuário.
Você precisa iniciar o processo "em segundo plano" para que sua interface do usuário continue sendo atualizada. Isso pode ser feito com:
Inicie e monitore o processo a partir de um thread separado e passe as informações de progresso de volta ao thread de interface do usuário para exibir Incluir um manipulador de eventos no evento de saída do processo ou periodicamente pesquisar o flag de process. HasExited e use isso para saber quando o primeiro processo acabado. Seu manipulador de eventos iniciaria esse processo e retornaria ao loop principal do aplicativo para que ele fosse executado normalmente enquanto aguardava a conclusão do processo externo.
Sente-se em um loop de espera ocupada até que seja concluído e processe os eventos do aplicativo. (Cuidado com isso, como qualquer evento que cause chamadas reentrantes para este código pode fazer coisas muito ruins. Geralmente, se você usar essa abordagem, você precisará certificar-se de que o resto do seu aplicativo está "bloqueado" em um estado onde ele saiba está ocupado esperando que um processo seja concluído). Isso é efetivamente o que o WaitForExit faz, mas também processa eventos de aplicativos, permitindo que a interface do usuário permaneça vagamente responsiva:

C # waitforexit
Eu tenho trabalhado no meu projeto da empresa. Eu notei esse problema, quando eu chamo de um Exe para outro Exe. Durante o arrasto do formulário no segundo Exe, ele mostrará vários formulários. Eu estou usando WaitforExit ().
por favor resolva.
Esta é exatamente a causa do problema. Se WaitForExit é chamado do thread do formulário, ele impedirá que o formulário seja redesenhado. Arrastar algo na frente de uma janela bloqueada deixa um rastro da janela arrastada.
Sugerido como Resposta ahmedilyas Moderador quinta-feira, 28 de julho de 2011 10:34 Marcado como Resposta Jackie-Sun Moderador segunda-feira, 8 de agosto de 2011 6:50.
O código seria melhor e também seria melhor se você pudesse nos dizer exatamente o que está tentando alcançar.
O WaitForExit () simplesmente espera (bloqueia seu código por este período) para um processo sair antes de continuar com a execução do seu código de chamada.
C # MVP (2007-2010) MS Vendor - MS Todo o caminho! Seguidor desde 1995 MS Super Evangelist | Moderador dos fóruns do MSDN.
Sugerido como Resposta ahmedilyas Moderador quinta-feira, 28 de julho de 2011 10:33 Marcado como Resposta Jackie-Sun Moderador segunda-feira, 8 de agosto de 2011 6:50.
Todas as respostas.
O código seria melhor e também seria melhor se você pudesse nos dizer exatamente o que está tentando alcançar.
O WaitForExit () simplesmente espera (bloqueia seu código por este período) para um processo sair antes de continuar com a execução do seu código de chamada.
C # MVP (2007-2010) MS Vendor - MS Todo o caminho! Seguidor desde 1995 MS Super Evangelist | Moderador dos fóruns do MSDN.
Sugerido como Resposta ahmedilyas Moderador quinta-feira, 28 de julho de 2011 10:33 Marcado como Resposta Jackie-Sun Moderador segunda-feira, 8 de agosto de 2011 6:50.
Eu tinha check. it tem problema em waitforexit () only. i notei que o problema ao mover segundo formulário exe.
o que exatamente é o problema? você leu minha resposta? você também leu o link que eu havia fornecido?
WaitForExit () é um método de bloqueio de threads que fará exatamente isso - espere que um processo saia antes que ele continue com seu código. ele NÃO fará com que seu formulário seja ocultado ou minimizado, a menos que você diga ao seu código para fazer isso antes de chamar WaitForExit ()
C # MVP (2007-2010) MS Vendor - MS Todo o caminho! Seguidor desde 1995 MS Super Evangelist | Moderador dos fóruns do MSDN.
Tudo está funcionando bem. mas quando eu movo o formulário, ele mostra várias formas.
Esta é exatamente a causa do problema. Se WaitForExit é chamado do thread do formulário, ele impedirá que o formulário seja redesenhado. Arrastar algo na frente de uma janela bloqueada deixa um rastro da janela arrastada.
Sugerido como Resposta ahmedilyas Moderador quinta-feira, 28 de julho de 2011 10:34 Marcado como Resposta Jackie-Sun Moderador segunda-feira, 8 de agosto de 2011 6:50.
quando você diz mostrando vários formulários - você está falando sobre várias instâncias dos formulários ou apenas o desenho / renderização?
se for o desenho / renderização, então sim, como foi dito antes - é porque ele está esperando o processo sair / terminar antes de continuar e é threadblocking, então você verá o problema & quot; problem & quot; você está parecendo estar descrevendo. Não há & quot; corrigir & quot; por isso, como não é um bug ou um problema, mas apenas o que você está usando e como você está usando.
Existe uma razão pela qual você está usando WaitForExit ()? Você tem que mostrar seu formulário quando você está usando WaitForExit ()? Por que você não esconde ou minimiza o formulário antes de chamar WaitForExit () e restaurá-lo depois?
C # MVP (2007-2010) MS Vendor - MS Todo o caminho! Seguidor desde 1995 MS Super Evangelist | Moderador dos fóruns do MSDN.

C # waitforexit
Eu tenho o seguinte código no meu aplicativo:
System. Diagnostics. Process proc = new System. Diagnostics. Process ();
Uma vez que eu chamo isso através de outro aplicativo, o processo está pendente.
Então eu dei um tempo de 5 segundos e agora funciona bem. Mas preciso encontrar uma maneira melhor de corrigir esse problema, pois esse valor de tempo limite pode depender dos recursos do sistema e da quantidade de aplicativo de entrada que precisa ser processada.
Então, minha pergunta é se estamos criando um processo usando System. Diagnostics, o SO cria um thread separado e o faz como thread principal ou thread de UI?
Ou está criando um thread CLR que é o mesmo que System. Threading. Thread?
Se usarmos o pool de segmentos para criar um segmento de trabalho, essa seria uma opção melhor?

C # waitforexit
alternativa pode-se fazer para quebrar a espera senão vou rodar o meu thread.
em uma função separada e controlá-lo por variáveis ​​globais.
Razão - um segmento CMD. EXE, com um aplicativo de console em execução, que nós.
precisa cancelar antes de o segmento executar seu curso.
Aqui está o que nós temos:
ProcessStartInfo psi = novo.
hbProc = new Process ();
& gt; Bem, você poderia usar:
hbProc. Exited + = new EventHandler (functionToCallAfterProces *** ele);
// outro tópico - deseja cancelar o evento:
hbProc - = new EventHandler (functionToCallAfterProces ***);
o processo saindo e o desejo de cancelar a espera.
& gt; Como permanente é WaitForExit (); ? Quero dizer há alguma coisa / an.
& gt; alternativa pode-se fazer para quebrar a espera senão vou rodar o meu thread.
& gt; em uma função separada e controlá-lo por variáveis ​​globais.
& gt; Razão - um segmento CMD. EXE, com um aplicativo de console em execução, que nós.
& gt; precisa cancelar antes de o segmento executar seu curso.
& gt; Aqui está o que nós temos:
& gt; ProcessStartInfo psi = novo.
& gt; hbProc = new Process ();
sobrecarga que permite que você especifique um timeout bool WaitForExit (int.
msToWait). Se você executá-lo em um segmento separado e matá-lo, você é.
vai receber uma exceção interrompida. Você pode querer certificar-se de que.
O processo que você iniciou ainda não está em execução (se for, mate-o).
& gt; Você pode matar o thread executando WaitForExit () ou usar o.
& gt; sobrecarga que permite que você especifique um timeout bool WaitForExit (int.
& gt; msToWait). Se você executá-lo em um segmento separado e matá-lo, você é.
& gt; vai receber uma exceção interrompida. Você pode querer certificar-se de que.
& gt; O processo que você iniciou ainda não está em execução (se for, mate-o).

Комментариев нет:

Отправить комментарий