Dicas sobre .NET: utilizando a classe Stopwatch

NetCoders
netcoders
Published in
2 min readSep 4, 2016

Determinar o tempo de processamento de uma tarefa é uma necessidade bastante comum em projetos de software. Este tipo de procedimento costuma estar associado à implementação de logs de monitoramento ou, mesmo, à geração de feedback reportando o andamento de uma atividade.

Muitos desenvolvedores costumam registrar o horário de início e término em casos como este, calculando ao final o tempo decorrido na execução de um conjunto de instruções. Embora se trate de uma prática válida e adotada por muitas aplicações, a plataforma .NET conta com um recurso que simplifica esta tarefa: a classe Stopwatch, que integra o namespace System.Diagnostics.

Na próxima listagem é possível observar um exemplo de utilização do tipo Stopwatch:

  • A partir de uma nova instância desta classe será acionada a operação Start, a fim de iniciar a contagem de tempo;
  • A chamada ao método Sleep da classe Thread (namespace System.Threading) interromperá a aplicação por um tempo aleatório, o qual pode variar de 1 a 3 segundos. Isto é conseguido por meio de um objeto do tipo Random (namespace System);
  • Por fim, invocar o método Stop fará com que a contagem de tempo seja interrompida. O valor correspondente poderá ser acessado através da propriedade Elapsed, a qual retornará um valor do tipo TimeSpan (namespace System).

[code language=”csharp”]
using System;
using System.Threading;
using System.Diagnostics;

namespace TesteStopwatch
{
class Program
{
static void Main(string[] args)
{
Stopwatch watch = new Stopwatch();
watch.Start();

Random r = new Random();
Thread.Sleep(r.Next(1000, 3000));

watch.Stop();

Console.WriteLine(“Tempo de processamento: “ + watch.Elapsed);
Console.ReadKey();
}
}
}
[/code]

Executando este bloco de instruções aparecerá então uma tela como a indicada na próxima imagem:

stopwatch-01

Concluo assim este post sobre .NET, lembrando que informações adicionais sobre a classe Stopwatch podem ser encontradas na seção de Referências.

Espero que este conteúdo possa ter sido útil.

Até uma próxima oportunidade!

Referências

Stopwatch Class
https://msdn.microsoft.com/en-us/library/system.diagnostics.stopwatch(v=vs.110).aspx

--

--