Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.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
.net WPF:如何在调试时刷新窗口?_.net_Wpf_Debugging_Refresh - Fatal编程技术网

.net WPF:如何在调试时刷新窗口?

.net WPF:如何在调试时刷新窗口?,.net,wpf,debugging,refresh,.net,Wpf,Debugging,Refresh,我正在调试一个由一组ViewModels表示的算法。为了调试这个算法,我想在遍历部分算法的同时重新绘制视图。这可能吗?(我宁愿重新绘制,而不是执行他们所谓的“DoEvents”来处理所有事件。)唉,当调试器在断点上停止时,调试器将挂起应用程序中的所有线程。我有一个类似的问题,这就是我所做的 1) 我没有设置断点,而是设置了带有详细信息的跟踪点。在VisualStudio中,如果放置大括号,如{abc},变量abc的值将输出到标准输出 2) 日志记录。当您无法暂停程序时,它非常有用 3) 结构化异

我正在调试一个由一组ViewModels表示的算法。为了调试这个算法,我想在遍历部分算法的同时重新绘制视图。这可能吗?(我宁愿重新绘制,而不是执行他们所谓的“DoEvents”来处理所有事件。)

唉,当调试器在断点上停止时,调试器将挂起应用程序中的所有线程。我有一个类似的问题,这就是我所做的

1) 我没有设置断点,而是设置了带有详细信息的跟踪点。在VisualStudio中,如果放置大括号,如{abc},变量abc的值将输出到标准输出

2) 日志记录。当您无法暂停程序时,它非常有用

3) 结构化异常处理。如果在出现问题时抛出异常,那么当程序由于错误而开始展开时,可以更轻松地跟踪异常


4) 尽可能多地断言。这样,如果您的程序没有停止,就意味着算法中的一切都很好。

这表明您确实显示了一个消息框。。我想他假定您使用的是WinForms,但这可能与WPF的工作方式相同。

太糟糕了。我在调试图形的问题,所以基于文本的输出是一种麻烦的方法。原则上,在调试过程中应该可以刷新屏幕,因为我听说WPF的渲染器在主应用程序的独立线程上运行。如果可以让线程在调试过程中运行,那就太好了……我的窗口包含了高度图形化的信息,我想在调试过程中刷新这些信息。消息框不会比调试器监视或跟踪点更有用。我想你可能误解了这个建议。这篇博文并不建议在MessageBox中写入任何文本,而是建议从调试器调用MessageBox.Show以强制重新绘制。这类似于在原始消息中编写的调试器中调用Application.DoEvents,但正如博客文章底部的讨论所述,它有一些优点:DoEvents只会耗尽队列,然后返回。眨眼你就会错过它。如果需要重新排列windos以使窗体可见,这可能是一个问题。MessageBox将等待单击。