gpt4 book ai didi

wpf - 使用 WPF,是否有一种方法可以检测阻止 GUI 更新的方法调用?

转载 作者:行者123 更新时间:2023-12-01 08:57:33 24 4
gpt4 key购买 nike

我想知道是否有一些技术或方法可以检测 WPF 应用程序中未使用 async/await 的调用。

我问的原因是我正在开发的 WPF 应用程序在屏幕更新时口吃和停止,而且我似乎无法追踪阻塞 GUI 线程的调用的来源。

我将 VS2012 和 VS2013 与 MVVM 设计模式一起使用。

最佳答案

这不会直接回答您的问题,但这将有助于确定调度程序线程何时过载,以下代码使用 DispatcherInactive 事件周围的事件处理程序来计算调度程序线程已被重载(阻塞)的时间工作:

var maxThreshold = TimeSpan.FromMilliseconds(750);
var previous = DateTime.Now;

Application.Current.MainWindow
.Dispatcher.Hooks.DispatcherInactive += (sender, eventArgs) =>
{
var current = DateTime.Now;
var delta = current - previous;

previous = current;

if (delta > maxThreshold)
{
Debug.WriteLine("UI Freeze = {0} ms", delta.TotalMilliseconds);
}
};

我建议这仅在 Debug模式下使用,所以它会被包裹在 #if DEBUG 中。堵塞。你不希望它在生产中运行。

关于wpf - 使用 WPF,是否有一种方法可以检测阻止 GUI 更新的方法调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25782469/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com