Eu tenho um aplicativo C que eu quero começar da VB. Eu consegui fazer isso dessa maneira: Dim startInfo As ProcessStartInfo Dim pStart Como Novo Processo startInfo Novo ProcessStartInfo (AppDirectory) O AppDirectory é o diretório do meu aplicativo C, a idéia por trás de tudo isso é Que eu quero fazer uma interface de usuário que leve alguma contribuição do usuário, salve-os em um arquivo de texto, o lançamento do programa C que lê as informações do arquivo de texto e faça o que é suposto fazer. O problema é que quando eu faço isso, a aplicação C é executada, mas não lê o arquivo de texto. Na verdade, eu tentei um programa fofo, onde eu acabei de escrever um programa C que lê de um arquivo de texto e basta lançá-lo da VB e ainda o programa C ainda não leu do arquivo txt. Qualquer idéia. (Btw, quando o C é executado diretamente (não através de VB), ele funciona 100) Sexta-feira, 28 de dezembro de 2007 3:01 PMProcess. WaitForExit Method () 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 da linha atual, use o evento Exitado. Este 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. 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. 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 a informação dos sistemas operacionais sobre o recurso do processo. O sistema está ciente das alças para os 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 ligar a instância do Começo para um processo, chame Close quando o processo associado tiver terminado e você não precisa mais de informações administrativas sobre isso. Fechar liberta a memória alocada para o processo encerrado.
No comments:
Post a Comment