用于监视从代码触发的事件的软件

时间:2009-03-19 18:40:33

标签: c# events monitoring deadlock

我在一段代码中遇到麻烦,我认为这与鼠标点击事件有关,但我似乎无法在我的代码中捕获确切的事件。我已经使用C#调试器来遍历我的代码,在我的一个事件结束后,代码就会锁定。

我的帖子的目的是询问是否有任何软件会监视我的进程并让我知道在我按下F11键并且代码冻结之后发生的事件。我已经尝试过SysInternals'procmon.exe,但这并没有告诉我哪些事件正在被解雇。

4 个答案:

答案 0 :(得分:2)

你试过Spy ++吗?它是Visual Studio附带的工具(至少2003年和2005年)。在我的默认2003和2005安装中,Spy ++位于: 开始|程序文件| Microsoft Visual Studio 200X | Visual Studio工具|间谍++

运行Spy ++后,从“搜索”菜单中选择“查找窗口...”。将“Finder工具”拖动到要监视事件的窗口或控件,然后单击“确定”。右键单击树中选定的项目,然后选择“消息”。这将打开一个窗口,显示消息,当它们到达您感兴趣的窗口时。

如果Spy ++无法满足您的需求,那么Managed Spy呢?它看起来像Spy ++,但专门用于托管代码。我没试过。

  

[It]在基于.NET的客户端应用程序中显示控件的树视图。您可以选择任何控件并获取或设置任何属性。您还可以记录控件引发的过滤的一组事件。

答案 1 :(得分:1)

您使用的是多线程吗?如果是这样,请尽量避免将控件和其他Windows窗体对象传递到窗体线程的一边,因为调试器将尝试访问该对象的值,这将导致调试器冻结一段时间。

答案 2 :(得分:0)

CLRProfiler可能会做你想要的。

工具概述说明

  

CLR Profiler包括许多   非常有用的分配观点   配置文件,包括直方图   分配的类型,分配和呼叫   图表,显示GC的时间线   各代人和由此产生的   之后托管堆的状态   集合和显示的调用树   每个方法的分配和组装   负荷。

内存使用在此说明中确实已售出,但它确实提到了“调用树”,并在how to use上显示此链接,提及

  

调用树视图提供基于文本的,   按时间顺序排列的   你的应用程序的执行。

祝你好运。

答案 3 :(得分:-1)

为什么不使用像log4net这样的日志记录工具?