Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在调试C#和vs2012期间停止秒表_C#_.net_Visual Studio 2012_Stopwatch - Fatal编程技术网

如何在调试C#和vs2012期间停止秒表

如何在调试C#和vs2012期间停止秒表,c#,.net,visual-studio-2012,stopwatch,C#,.net,Visual Studio 2012,Stopwatch,所以我有一些依赖于秒表的代码来进行一些计算 然而,一旦秒表启动,它甚至在调试期间也不会停止,并且在我尝试调试代码时,它会给我带来问题 是否有任何方法可以在调试期间阻止秒表运行。我正在使用VS2012。不,你不能。因为秒表实际上不像线程那样运行,你可以暂停并继续。它只是简单地计算开始和停止时的时间,然后计算差值 也许如果您发布代码或概念,我们可以找到一种不用秒表就能解决问题的方法?使用System.Diagnostics.Debugger.Break()用于此 调试器。中断:如果未附加调试器,则会

所以我有一些依赖于秒表的代码来进行一些计算

然而,一旦秒表启动,它甚至在调试期间也不会停止,并且在我尝试调试代码时,它会给我带来问题


是否有任何方法可以在调试期间阻止秒表运行。我正在使用VS2012。

不,你不能。因为秒表实际上不像线程那样运行,你可以暂停并继续。它只是简单地计算开始和停止时的时间,然后计算差值


也许如果您发布代码或概念,我们可以找到一种不用秒表就能解决问题的方法?

使用
System.Diagnostics.Debugger.Break()用于此

调试器。中断:如果未附加调试器,则会询问用户是否已附加调试器 要附加调试器。如果是,则启动调试器。如果 如果附加了调试器,则会向调试器发送用户断点信号 事件,调试器将暂停进程的执行,就像 调试器断点已命中


希望有帮助。

如果在VS2012中使用调试配置文件运行,则可以使用以下内容:

#if DEBUG
sw.Stop();
#endif

这可能不是你所希望的,但你可以暂时这样做:

stopwatch.Stop();
Debugger.Break();
stopwatch.Start();

如果您不想担心意外地将其留在调试块中,可以将其包装在#if DEBUG block中。

告诉我们您做了什么;)这是一个相当大的代码。试想一下,它的循环运行了一些特定的时间,一个变量在里面被递增,那么你能在一个小沙箱程序中重新创建你想要完成的吗?Nvoigt的回答是正确的,秒表只记录开始时间,然后比较停止时间,没有“运行计数”停止当你打破。如果你能告诉我们你想做什么,也许我们可以给你一些东西来代替秒表。秒表是基于非基于的。你不能使用即时窗口来停止你的秒表吗?好吧,那是几个月前的事了,现在我不记得我做了什么来补救这种情况。秒表仍然在运行如果你投了反对票,请留下评论,因此海报可以改进。它是一个在特定时间内运行的循环,其中的变量正在增加。答案是正确的,但推理是不准确的。可以通过调用
Stopwatch.Stop
Stopwatch.Start
方法暂停和恢复秒表。但期望调试器调用您的应用程序代码来完成这项工作并不是真正可行或可取的。假定调试器的意思是停止整个宇宙(应用程序)的时间,因此在执行下一个调试步骤之前,没有线程正在运行,没有秒表正在运行,没有超时正在过期等等。。。