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
}

相关内容

热门资讯

此事迅速冲上热搜!wepoke... 此事迅速冲上热搜!wepoker新号好一点吗,德普之星透视软件免费入口官网,总是是有挂(有挂猫腻)此...
重大发现!广西八一字牌可以破解... 重大发现!广西八一字牌可以破解码,开心泉州小程序福州,详细神器(真的有挂)1、广西八一字牌可以破解码...
最新消息!wepoker私人局... 最新消息!wepoker私人局怎么玩,德普辅助软件,原来存在有挂(有挂秘笈)1、德普辅助软件模拟器是...
热点讨论!新道游正版作弊,欢乐... 热点讨论!新道游正版作弊,欢乐茶馆辅助器,详细攻略(有挂攻略)1、每一步都需要思考,不同水平的挑战会...
教学盘点!创思维激K辅助器开挂... 教学盘点!创思维激K辅助器开挂,情怀莆仙辅助,详细工具(有挂细节)1、全新机制【创思维激K辅助器开挂...
分享认知!蜀山四川破解好友版辅... 分享认知!蜀山四川破解好友版辅助,乐胡脚本,详细攻略(有挂辅助)所有人都在同一条线上,像星星一样排成...
2026版教学!wpk模拟器,... 2026版教学!wpk模拟器,德扑之星辅助工具如何打开,原来真的有挂(有挂细节)1.德扑之星辅助工具...
发现一款!陇南摆叫辅助,潮友潮... 发现一款!陇南摆叫辅助,潮友潮汕木虱辅助,详细技巧(有挂解密)1、每一步都需要思考,不同水平的挑战会...
近日!wepoker辅助器,德... 近日!wepoker辅助器,德扑之星私人局辅助器,切实是真的有挂(有挂细节)1、起透看视 德扑之星私...
揭秘攻略!科乐填大坑作弊码,科... 揭秘攻略!科乐填大坑作弊码,科乐天天踢解码器,详细插件(真实有挂)1、点击下载安装,科乐天天踢解码器...