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
}

相关内容

热门资讯

玩家必看秘籍辅助器!乐天棋牌辅... 玩家必看秘籍辅助器!乐天棋牌辅助器AI技巧,乐天棋牌多功能切实真的有辅助器技巧乐天棋牌辅助器是一种具...
必看攻略透视器!牵手跑胡子透视... 您好,牵手跑胡子这款游戏可以开挂的,确实是有挂的,需要了解加去威信【136704302】很多玩家在这...
揭秘一下开挂!萍乡打滚筒开挂A... 揭秘一下开挂!萍乡打滚筒开挂AI攻略,萍乡打滚筒多功能确实真的是有开挂攻略1、下载好萍乡打滚筒正确养...
发现玩家作弊器!德堡扑克作弊器... 发现玩家作弊器!德堡扑克作弊器AI方法,德堡扑克多功能一直真的是有作弊器方法1、上手简单,内置详细流...
科技新动态透视器!起点大厅透视... 科技新动态透视器!起点大厅透视器AI工具,起点大厅多功能其实真的有透视器工具1、进入游戏-大厅左侧-...
玩家必备科普透视器!天天摸麻将... 玩家必备科普透视器!天天摸麻将透视器AI脚本,天天摸麻将多功能确实有透视器脚本天天摸麻将破解侠是真的...
一分钟秒懂辅助器!战火互娱辅助... 一分钟秒懂辅助器!战火互娱辅助器AIapp,战火互娱多功能都是存在有辅助器app1、完成战火互娱有辅...
指导大家开挂!领悟棋牌开挂AI... 指导大家开挂!领悟棋牌开挂AI教程,领悟棋牌多功能确实是真的有开挂教程1)领悟棋牌辅助插件:进一步探...
分辨真假辅助器!友空互娱辅助器... 分辨真假辅助器!友空互娱辅助器AI方法,友空互娱多功能原来是有辅助器方法1、下载好友空互娱脚本下载之...
玩家实测开挂!富友茶苑开挂AI... 玩家实测开挂!富友茶苑开挂AI脚本,富友茶苑多功能一贯真的有开挂脚本所有人都在同一条线上,像星星一样...