使用StopWatch以c#窗体形式计算运行时间

时间:2015-05-16 12:32:55

标签: c# winforms timer textbox stopwatch

这是我的代码:

 public State Create_eNfa(string sRegExPosfix)
      {
          var watch = Stopwatch.StartNew();
          //bla bla bla

          Debug.Assert(stackNfa.Count == 1);
          var expr = (NfaExpression) stackNfa.Pop();
          expr.FinalState().AcceptingState = true;

          watch.Stop();
          var time=watch.ElapsedMilliseconds;          

          return expr.StartState();

      }

现在,变量" time"包括我想要的东西,但问题是如何移动"时间"我的形式。我想把textBox.Text=time.toString();放在我的表格中。

最后,在我的代码中调用Create_eNFA之后,textBox将显示结果,我该怎么做。

1 个答案:

答案 0 :(得分:1)

在您的上下文中,您的方法需要返回多个值并且已经为State值获取了返回值,那么您需要将time变量作为out parameter传递。

public State Create_eNfa(string sRegExPosfix, out long time)
{
   var watch = Stopwatch.StartNew();
   .....
   watch.Stop();
   time = watch.ElapsedMilliseconds;          
   return expr.StartState();
 }

并用

调用它
 long time;
 State result = Create_eNfa(sRegExPosfix, out time);
 textBox.Text=time.toString();      

out time参数是对调用代码中变量time的引用,您需要在退出Create_eNfa方法之前为其分配值