可能重複:
How to measure how long is a function running?定時器C#。啓動,停止,並得到調用之間的時間量
我正在寫有可靠的數據傳輸一個UDP聊天。我需要在發送數據包時啓動計時器,並在收到服務器應答後立即停止(ACK - 確認)。
這裏是我的代碼:
private void sendButton_Click(object sender, EventArgs e)
{
Packet snd = new Packet(ack, textBox1.Text.Trim());
textBox1.Text = string.Empty;
Smsg = snd.GetDataStream();//convert message into array of bytes to send.
while (true)
{
try
{ // Here I need to Start a timer!
clientSock.SendTo(Smsg, servEP);
clientSock.ReceiveFrom(Rmsg, ref servEP);
//Here I need to stop a timer and get elapsed amount of time.
Packet rcv = new Packet(Rmsg);
if (Rmsg != null && rcv.ACK01 != ack)
continue;
if (Rmsg != null && rcv.ACK01 == ack)
{
this.displayMessageDelegate("ack is received :"+ack);
ChangeAck(ack);
break;
}
謝謝。
你的問題是什麼? –
你很可能不想要一個計時器。你可能想要一個'System.Diagnostics.Stopwatch'。 – PhoenixReborn
如果這完全是同步的,那麼你根本不需要定時器,只需在開始時獲取DateTime.UtcNow,在停止並計算TimeSpan之間的TimeTime時使用DateTime.UtcNow。應該足夠準確。 – Lloyd