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
}

相关内容

热门资讯

我来分享!广西老友麻将有挂吗,... 我来分享!广西老友麻将有挂吗,agpoker辅助,软件教程(有挂秘笈),广西老友麻将有挂吗是用手机号...
技术分享!打罗松必胜技巧,xp... 技术分享!打罗松必胜技巧,xpoker辅助怎么用,必备教程(有挂工具)是一款可以让一直输的玩家,快速...
2分钟细说!老友地方内蒙古辅助... 2分钟细说!老友地方内蒙古辅助,德州局脚本,科技教程(有挂技巧)是一款可以让一直输的玩家,快速成为一...
推荐攻略!都莱大菠萝辅助器,拱... 推荐攻略!都莱大菠萝辅助器,拱趴大菠萝十三水作弊,解密教程(有挂规律);AI辅助机器人普及解说快速成...
总算了解!微乐多乐跑作弊,we... 总算了解!微乐多乐跑作弊,wepoker辅助器安装包定制,解密教程(有挂猫腻);微乐多乐跑作弊最新软...
分享实测!潮友会鱼虾蟹脚本辅助... 分享实测!潮友会鱼虾蟹脚本辅助器,哈糖大菠萝有没有挂,教你攻略(有挂秘笈)是一款可以让一直输的玩家,...
一分钟揭秘!微信小游戏修改器,... 您好:微信小游戏修改器这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的牌...
最新技巧!川娱竞技辅助插件,h... 最新技巧!川娱竞技辅助插件,hhpoker是真的还是假的,AI教程(竟然有挂);川娱竞技辅助插件简单...
玩家必看秘籍!边锋老友怎么开辅... 玩家必看秘籍!边锋老友怎么开辅助,hhpoker到底可以作弊码,详细教程(今日头条),边锋老友怎么开...
必看攻略!创思维激k看底牌辅助... 必看攻略!创思维激k看底牌辅助,约局吧作弊脚本,透明教程(竟然有挂)是一款可以让一直输的玩家,快速成...