Inquiridor
Como colocar um temporizador em um while

Pergunta
-
Eu tenho um while funcionando perfeitamente, agora eu queria definir um temporizador para execução, hoje funciona assim:
try
{
Select do banco, abre conexao, le os dados
while (drdados.read())
{
envia email para o pessoal do banco de dados
}
Eu queria colocar um temporizador na execução, tipo leu os dados, ex: 30 registros, ai manda email para o primeiro, 5 segundos depois para o segundo, e assim sucessivamente.
Melhor que dar o peixe é ensinar a pescar
Daniel Yamaguti
Gerente de TI
Todas as Respostas
-
Olá Daniel,
Para fazer uma pausa podes usar simplesmente este código:
System.Threading.Thread.Sleep(millisecondsDelay);
Nuno Gomes http://nunogomes.net
- Sugerido como Resposta Murilo Kunze terça-feira, 20 de março de 2012 15:48
-
Melhor você colocar tudo isso dentro de uma thread támbem, caso contrário seu programa ficará preso no método até tudo ser enviado a menos que você precise que tudo seja enviado para poder continuar algo.
//EnviaEmail é o nome do seu método Thread t = new Thread(EnviaEmail);
http://www.linkedin.com/pub/murilo-kunze/44/191/455
- Sugerido como Resposta Murilo Kunze terça-feira, 20 de março de 2012 15:48
-
Na mão:
Using System.Threading; // Vai precisar do Namespace // Declara uma Thread para evitar lentidao no sistema. Thread t = new Thread(EnviarEmail); // Inicializa o processo. t.Start(); // Funcao para consultar e enviar public void EnviarEmail() { try { //Select do banco, abre conexao, le os dados while (drdados.read()) { SendMail //Envia email // Dorme 5 Segundos. System.Threading.Thread.Sleep(5000); } } catch(Exception ex) { // TODO: Tratar o erro. } }
Boa Sorte!- Editado EduardoPiresMVP quarta-feira, 25 de abril de 2012 21:13
-
-
Eu tenho um while funcionando perfeitamente, agora eu queria definir um temporizador para execução, hoje funciona assim:
...
Eu queria colocar um temporizador na execução, tipo leu os dados, ex: 30 registros, ai manda email para o primeiro, 5 segundos depois para o segundo, e assim sucessivamente.
Mas você quer colocar um temporizador para marcar um intervalo entre o envio de um e-mail a outro, ou usar o temporazador para marcar um intervalo entre certas quantidades de registro que serão enviadas?!
Se não for um intervalo entre cada e-mail, porque não enviar um e-mail entre cada 50 a 50 registros por exemplo?!E você precisa colocar isso dentro do WHILE? Por quê?
Você poderia fazer a leitura de TUDO, após o termino do While você enviaria o que precisar, para evitar fila, aí sim envia a cada intervalo como foi respondido pelos amigos do Forum!
O código :
Irá a cada leitura de registro e envio de e-mail irá esperar 5 seg....
SendMail //Envia email // Dorme 5 Segundos. System.Threading.Thread.Sleep(5000);
Mas Threads são executadas simultaneamente a não ser que informe uma prioridade!
É ajudando os outros que nos ajudamos...