我有一个VB应用程序,我需要在它运行时监视.我在Watch窗口中添加了一些变量,但是当应用程序运行时,监视窗口显示为灰色.我发现看到变量值的唯一方法是使用Debug - > Break All,但这会停止程序.
我使用过其他IDE,它们允许监视活动变量.这可能在VS?
对不起,如果这是一个菜鸟问题.
更新:要清楚,我的应用程序正在与一个实验室设备进行通信,并且当发送或接收数据或检测到错误时,计数器会递增.我想看这些计数器,但我不想构建一个屏幕来执行此操作,因为它们用于调试.我只是假设这是任何IDE中的基本功能
SHOCKED:似乎Visual Studio不提供这个(我会考虑的)基本功能.对于那些似乎认为用解释语言无法做到这一点的人,请考虑这个思想实验.如果您快速按下Break All然后按Continue,那么您将刷新监视窗口 - 对吗?为什么Visual Studio不能将此作为单个Refresh Watch命令执行此操作,或者更好地允许此功能在用户指定的时间段内自动运行.没有调试写入,没有日志文件,没有在流中途停止程序并创建超时.我很震惊你不能这样做.它有点像没有断点.
我正在使用QueryPerformanceCounter来计算一些代码.当代码开始报告时间明显错误时,我感到震惊.要将QPC的结果转换为"实际"时间,您需要除以QueryPerformanceFrequency返回的频率,因此经过的时间为:
时间=(QPC.end - QPC.start)/ QPF
重启后,QPF频率从2.7 GHz变为4.1 GHz.我认为实际硬件频率没有改变,因为运行程序的挂钟时间没有变化,尽管使用QPC报告的时间确实发生了变化(下降了2.7/4.1).
MyComputer-> Properties显示:
英特尔(R)奔腾(R)4 CPU 2.80 GHz; 4.11 GHz; 1.99 GB的RAM; 物理地址扩展
除此之外,该系统似乎工作正常.
我将尝试重新启动以查看问题是否清除,但我担心这些关键性能计数器可能会在没有警告的情况下变为无效.
更新:
虽然我很欣赏答案,特别是链接,但我没有受影响的芯片组,也没有自己的CPU时钟.根据我的阅读,QPC和QPF基于PCI总线中的定时器,不受CPU时钟变化的影响.在我的情况下奇怪的是QPF报告的FREQUENCY变为不正确的值,并且在MyComputer - > Properties中也报告了这种变化的频率,我当然没有写.
重新启动修复了我的问题(QPF现在报告正确的频率),但我认为如果你打算使用QPC/QPF,你应该在信任它之前对另一个计时器进行验证.
在调试过程中使用多个控制台(不是多个监视器,我已经拥有)会很方便.我想象的是Console.WriteLine(1,String1),它将String1发送到一个控制台窗口1,Console.WriteLine(2,String2)将String2发送到控制台窗口2.
在Visual Basic中
Friend Const xxx As UInt64 = 400 * 365 * 24 * 60 * 60 ''// Number of secs in 400 years
Run Code Online (Sandbox Code Playgroud)
这失败了,错误
constant expression not representable in type integer
Run Code Online (Sandbox Code Playgroud)
问题是400*365*24*60*60大于2 ^ 32
我原以为通过将常量声明为UInt64,可以为其分配64位值