none
C# - Multithreading RRS feed

  • Pergunta

  • Oi pessoal, venho criando uma ferramenta e sou novato em C#, estou com muita dúvida, será q poderia me mostrar como funciona os seguintes passos...

    #1 - Criar uma variável global que define se um processo está rodando ou não. (no caso o processo do "notepad")

    #2 - Criar um método assíncrono, que apenas ficará consultando se o "notepad" está em execução. Caso não esteja, ele mudará essa variável global para FALSE.

    #3 Criar o segundo método assíncrono, que ficará de olho para essa variável, e quando ela for TRUE, minha ferramenta irá funcionar!

    quinta-feira, 30 de maio de 2019 16:03

Respostas

  • Boa tarde,

    Creio que o que você precisa é criar uma nova thread para esta função específica, de ficar analisando o processo.

    Algo próximo disto aqui:

    //sem aplicacao pratica, so para expressar a ideia
    
    bool processo; //armazena o estado do processo (on/off)
    
    static void Main()
    {
    	Thread t = new Thread(WriteY);           // thread que ficará monitorando o processo
    	t.Start();                               // running WriteY()
    
    	//o resto do conteúdo de main abaixo
    	//...
    }
    
    static void WriteY()
    {
    	Process[] pname = Process.GetProcessesByName("notepad");
    
    	if (pname.Length == 0) processo = false;
    	else processo = true;
    }
     

    Guia sobre threading: http://www.albahari.com/threading/ 

    Atenciosamente, 


    Igor F. Kunrath

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    Technet Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    quinta-feira, 30 de maio de 2019 16:53
    Moderador