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
}

相关内容

热门资讯

第一分钟了解!微信小程序游戏修... 第一分钟了解!微信小程序游戏修改器!果然真的有辅助软件(有挂头条)-哔哩哔哩微信小程序游戏修改器透视...
第九分钟了解!新西楚大厅辅助!... 您好,新西楚大厅辅助这款游戏可以开挂的,确实是有挂的,需要了解加去威信【136704302】很多玩家...
第5分钟了解!奇迹思维辅助!原... 第5分钟了解!奇迹思维辅助!原来一直总是有辅助技巧(有挂攻略)-哔哩哔哩1、上手简单,内置详细流程视...
4分钟了解!天天卡五星攻略!竟... 4分钟了解!天天卡五星攻略!竟然一直总是有辅助工具(证实有挂)-哔哩哔哩天天卡五星攻略脚本下载中分为...
1分钟了解!潜江晃晃辅助!确实... 1分钟了解!潜江晃晃辅助!确实是有辅助技巧(有挂功能)-哔哩哔哩1、上手简单,内置详细流程视频教学,...
6分钟了解!新上游通用挂是真的... 6分钟了解!新上游通用挂是真的吗!切实有辅助神器(有挂秘籍)-哔哩哔哩进入游戏-大厅左侧-新手福利-...
第十分钟了解!微乐游戏辅助脚本... 第十分钟了解!微乐游戏辅助脚本安卓!好像一直总是有辅助app(真实有挂)-哔哩哔哩1、第十分钟了解!...
7分钟了解!多乐找刺激捕鱼辅助... 7分钟了解!多乐找刺激捕鱼辅助!果然一直都是有辅助app(真的有挂)-哔哩哔哩1)多乐找刺激捕鱼辅助...
第一分钟了解!微乐江苏自建房辅... 第一分钟了解!微乐江苏自建房辅助app!好像是有辅助app(有挂教学)-哔哩哔哩1、该软件可以轻松地...
四分钟了解!新上游辅助器!一贯... 四分钟了解!新上游辅助器!一贯有辅助软件(了解有挂)-哔哩哔哩1、新上游辅助器模拟器是什么优化,新上...