AvaloniaUI+ReactiveUI中执行异步命令时,界面冻结。
创始人
2024-11-12 19:00:39
0

使用Command来执行异步操作,并在Command中实现ICancellableCommand接口来处理取消操作,避免界面冻结。

代码示例:

public class AsyncCommand : ICommand, ICancellableCommand
{
    private readonly Func _execute;
    private bool _isExecuting;

    public AsyncCommand(Func execute)
    {
        _execute = execute;
    }

    public bool CanExecute(object parameter)
    {
        return !_isExecuting;
    }

    public async void Execute(object parameter)
    {
        _isExecuting = true;
        try
        {
            await _execute();
        }
        finally
        {
            _isExecuting = false;
        }
    }

    public void Cancel()
    {
        // TODO: Implement cancellation
    }

    public event EventHandler CanExecuteChanged;
}

使用方法:

private AsyncCommand _asyncCommand;

public ViewModel()
{
    _asyncCommand = new AsyncCommand(ExecuteAsync);
}

public ICommand AsyncCommand => _asyncCommand;

private async Task ExecuteAsync()
{
    // TODO: Implement asynchronous operation
}

相关内容

热门资讯

分享一款!智星德州辅助译码插件... 分享一款!智星德州辅助译码插件靠谱吗,约局吧德州真的存在透视吗,力荐教程(有挂辅助)1、玩家可以在智...
必备科技!德州局透视,德州透视... 这是一款非常优秀的德州透视插件 ia辅助检测软件,能够让你了解到德州透视插件中牌率当中全部隐藏参数,...
我来教大家!wpk免费辅助,a... 我来教大家!wpk免费辅助,aapoker辅助器是真的吗,扑克教程(有挂透视);亲真的是有正版授权,...
免费测试版!wepoker透视... 免费测试版!wepoker透视脚本是什么,werplan怎么透视,细节方法(有挂教程),支持语音通讯...
今日科普!wepoker私人局... 您好,wepoker私人局开挂视频这款游戏可以开挂的,确实是有挂的,需要了解加微【136704302...
我来分享!约局吧游戏挂,wep... 我来分享!约局吧游戏挂,wepoker私人局透视插件,技巧教程(有挂技巧);wepoker私人局透视...
记者发布!wejoker辅助器... 记者发布!wejoker辅助器要钱玩吗,wepoker挂,必赢教程(有挂软件)关于wejoker辅助...
重大科普!we-poker辅助... 1、重大科普!we-poker辅助器,wepoker高级辅助,软件教程(有挂教程)2、进入游戏-大厅...
一分钟揭秘!wpk透视辅助下载... 一分钟揭秘!wpk透视辅助下载,wejoker辅助器要钱玩吗,曝光教程(有挂技巧);1分钟了解详细教...
一分钟揭秘!wepoker网页... 1、一分钟揭秘!wepoker网页版透视方法,hhpoker辅助挂,详细教程(有挂教程);详细教程。...