gpt4 book ai didi

c# - UI繁忙时更改光标

转载 作者:行者123 更新时间:2023-12-03 13:20:03 26 4
gpt4 key购买 nike

我有这个课:

public class CursorWait : IDisposable
{
private readonly CancellationTokenSource _tokenSource;

public CursorWait(int showAfter)
{
_tokenSource = new CancellationTokenSource();
Task.Delay(showAfter, _tokenSource.Token).ContinueWith(delegate(Task task)
{
if (!task.IsCanceled)
Mouse.SetCursor(Cursors.Wait);
});
}

public void Dispose()
{
_tokenSource.Cancel();
Mouse.SetCursor(Cursors.Arrow);
}
}

像这样使用它:
using (new CursorWait(showAfter: 500))
{
DoSomethingMayBeHeavyOrNotInUI();
}

但是,由于Mouse.SetCursor依赖于UI线程来更改它,因此它不起作用,并且由于它很忙,所以它永远都不会改变,那么如何更改光标?

注意:我知道我不应该阻塞UI线程,而应该更改窗口的IsHitTestVisible属性。但是我是这个项目的新手,我的团队就是这样做的,由于这个项目快要完成了,他们不会让我

最佳答案

尝试添加此行设置鼠标光标后。

Application.Current.Dispatcher.Invoke(DispatcherPriority.Background, new Action(delegate { }));

关于c# - UI繁忙时更改光标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22023840/

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