gpt4 book ai didi

wpf - 调用网络服务时避免沙漏鼠标光标?

转载 作者:行者123 更新时间:2023-12-04 06:51:50 24 4
gpt4 key购买 nike

我不知道这是一个一般的 web 服务问题,还是只是我的特定场景,这是一个 WPF 应用程序,带有调用 web 服务方法的 DispatcherTimer。
每当定时器被调用时,鼠标光标会自动变为沙漏光标。

调用的处理时间非常短,每 3 秒发生一次,因此用户体验是,每 3 秒鼠标会像沙漏一样闪烁一瞬间,然后又回到正常的光标表示。

我怎样才能避免这种不便?

谢谢。

最佳答案

当计时器也触发时,您的整个应用程序是否也没有响应,或者整个过程太快而无法注意到?

我的假设是您可能在 DispatcherTimer 上同步调用代码,这可能会导致短暂的无响应(可能还有沙漏)。要解决此问题,请确保您的 Dispatcher 的 Tick 事件是异步代码。

这是一个简单的小例子,每 3 秒执行 1 秒的假工作,然后更新 GUI:

public partial class MainWindow : Window
{
private static int foo = 0;

public MainWindow()
{
InitializeComponent();

DispatcherTimer timer = new DispatcherTimer();
timer.Interval = TimeSpan.FromMilliseconds(3000);
timer.Tick += new EventHandler(delegate(object o, EventArgs args)
{
StatusBox.Text = "Incrementing";

ThreadStart start = delegate()
{
// Simulate work
Thread.Sleep(1000);

// Update gui
this.Dispatcher.BeginInvoke(new Action(delegate
{
CountingBox.Text = (foo++).ToString();
StatusBox.Text = "Waiting";
}));
};

new Thread(start).Start();
});

timer.Start();
}
}

(还有其他方法可以实现相同的目标,这个方法很简单。有关更多信息,请参阅此处的指南: http://msdn.microsoft.com/en-us/magazine/cc163328.aspx)

关于wpf - 调用网络服务时避免沙漏鼠标光标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3005346/

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