Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Alexandre Carmo

Trabalhar com Threads dinâmicas

Recommended Posts

Boa tarde

 

Já trabalhei criando threads em aplicativos desktop, porém me deparei com problema que ainda não achei uma solução, é o seguinte, tenho um programa que irá verificar se outros programas esta aberto, a lista de programas a ser verificada é cadastrada pelo usuário, logo não existem programas exatos a serem verificados, por exemplo o usuário pode cadastrar para ser verificado:

* Word, Excel, Outlook e Internet explorer

enquanto um outro usuário em sua máquina pode cadastrar:

* SQLServer, Visual Sttudio

Claro que o usuário irá cadastrar o nome de processos deles, mas em fim

eu já criei threads que ficam verificando se um determinado programa esta aberto, porém isso era fixo então eu criava a aplicação e fazia um loop dentro da thread e pronto ficava verificando se a aplicação esta aberto.

Porém no caso em questão como é dinâmico o programa precisa verificar no banco de dados as aplicações que irão ser monitoradas e então ficar verificando, caso ela pare ele irá emitir um alerta, mas como é dinâmico a quantidade e os programas que serão monitorados como eu faria isso? Alguém tem sugestão?

Detalhe importante estou precisando fazer isso em c# com WPF desktop

Compartilhar este post


Link para o post
Compartilhar em outros sites

Logo no começo da aplicação crie um array que buscará todos os programas que o usuário cadastrou para serem procurados no banco de dados, ou seja, você vai pegar todos os dados de threads deste usuário e armazenar localmente para evitar ter que fazer a query sempre.

 

Toda vez que o usuário adicionar um programa novo, você refaz a função de preenchimento do array. Daí pra frente é a mesma coisa, a unica coisa que muda é que você terá de fazer um For para percorrer este array dentro do loop que você já tinha criado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia KhaosDoctor

 

Entendi a ideia e no caso das threads para esse array, eu faria uma thread apenas que ficaria percorrendo a array avaliando os aplicativos como uma fila que ao finalizar inicia novamente ou tentaria criar uma thread para cada item do array? Qual seria a melhor opção, o que vocÊ acha?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma thread para percorrer o Array, se fosse uma para cada processo seria demais, deixaria o pc todo lento. Você percorre o array nesta thread e verifica os programas, ai você pode tanto passar valores por application settings ou qualquer outra variável global para saber se a thread ja acabou ou não.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.