相关疑难解决方法(0)

计算方法的执行时间

可能重复:
如何测量函数运行的时间?

我有一个I/O计时方法,可以将数据从一个位置复制到另一个位置.什么是计算执行时间的最佳和最实际的方法?ThreadTimerStopwatch?还有其他方法吗?我想要最精确的一个,尽可能简短.

.net c# io timer stopwatch

494
推荐指数
7
解决办法
47万
查看次数

测量代码执行时间

我想知道程序/功能/订单需要多长时间才能完成测试.

这是我做的,但我的方法是错误的'因为如果秒的差异为0则无法返回经过的毫秒:

请注意,睡眠值为500毫秒,因此经过的秒数为0,则无法返回毫秒数.

    Dim Execution_Start As System.DateTime = System.DateTime.Now
    Threading.Thread.Sleep(500)

    Dim Execution_End As System.DateTime = System.DateTime.Now
    MsgBox(String.Format("H:{0} M:{1} S:{2} MS:{3}", _
    DateDiff(DateInterval.Hour, Execution_Start, Execution_End), _
    DateDiff(DateInterval.Minute, Execution_Start, Execution_End), _
    DateDiff(DateInterval.Second, Execution_Start, Execution_End), _
    DateDiff(DateInterval.Second, Execution_Start, Execution_End) * 60))
Run Code Online (Sandbox Code Playgroud)

有人能告诉我更好的方法吗?也许有一个TimeSpan

解决方案:

Dim Execution_Start As New Stopwatch
Execution_Start.Start()

Threading.Thread.Sleep(500)

MessageBox.Show("H:" & Execution_Start.Elapsed.Hours & vbNewLine & _
       "M:" & Execution_Start.Elapsed.Minutes & vbNewLine & _
       "S:" & Execution_Start.Elapsed.Seconds & vbNewLine & _
       "MS:" & Execution_Start.Elapsed.Milliseconds & vbNewLine, _
       "Code execution time", MessageBoxButtons.OK, …
Run Code Online (Sandbox Code Playgroud)

.net c# vb.net datetime timespan

104
推荐指数
6
解决办法
14万
查看次数

C#:等待所有线程完成

我正在编写我正在编写的代码中的常见模式,我需要等待组中的所有线程完成,并且超时.超时应该是所有线程完成所需的时间,因此简单地为每个线程执行thread.Join(timeout)将不起作用,因为可能的超时是超时*numThreads.

现在我做类似以下的事情:

var threadFinishEvents = new List<EventWaitHandle>();

foreach (DataObject data in dataList)
{
    // Create local variables for the thread delegate
    var threadFinish = new EventWaitHandle(false, EventResetMode.ManualReset);
    threadFinishEvents.Add(threadFinish);

    var localData = (DataObject) data.Clone();
    var thread = new Thread(
        delegate()
        {
            DoThreadStuff(localData);
            threadFinish.Set();
        }
    );
    thread.Start();
}

Mutex.WaitAll(threadFinishEvents.ToArray(), timeout);
Run Code Online (Sandbox Code Playgroud)

但是,对于这种事情,似乎应该有一个更简单的习语.

c# multithreading

63
推荐指数
6
解决办法
10万
查看次数

定时器C#.启动,停止并获取通话之间的时间

可能重复:
如何测量函数运行的时间?

我正在编写一个带有可靠数据传输的UDP聊天.我需要在发送数据包时启动计时器,并在收到服务器的答复后立即停止(确认 - 确认).

这是我的代码:

 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 != …
Run Code Online (Sandbox Code Playgroud)

.net c# multithreading udp timer

4
推荐指数
1
解决办法
4万
查看次数

C#如何衡量经过的时间?

我想记录执行自定义方法所需的时间,但我以前从未使用过计时器类或方法,我知道我做错了.

这就是我所拥有的.

System.Timers.Timer Time;
int Mili = 0 ;

data = Generate();

Time.Enabled = true;
BSort= BubbleSort(data);

Time.Enabled = false;
Run Code Online (Sandbox Code Playgroud)

c# elapsedtime

0
推荐指数
1
解决办法
888
查看次数

标签 统计

c# ×5

.net ×3

multithreading ×2

timer ×2

datetime ×1

elapsedtime ×1

io ×1

stopwatch ×1

timespan ×1

udp ×1

vb.net ×1