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、打开软件启动之后找到中间准星的...
盘点一款!都昌讨赏透视挂功能脚... 盘点一款!都昌讨赏透视挂功能脚本,都昌讨赏果然真的有透视挂脚本1、实时都昌讨赏透视辅助更新:用户可以...
六分钟了解!七七娱乐辅助器功能... 六分钟了解!七七娱乐辅助器功能工具,七七娱乐真是有辅助器工具1、七七娱乐免费辅助多个强度级别选择2、...
揭秘一下!八戒大厅透视挂功能教... 揭秘一下!八戒大厅透视挂功能教程,八戒大厅确实是有透视挂教程1、首先打开八戒大厅辅助器下载最新版本,...
一分钟揭秘!快盈透视挂功能方法... 一分钟揭秘!快盈透视挂功能方法,快盈果然存在有透视挂方法1、一分钟揭秘!快盈透视挂功能方法,快盈果然...
科技揭秘!大关盐津新摆二透视挂... 科技揭秘!大关盐津新摆二透视挂功能插件,大关盐津新摆二确实有透视挂插件1、大关盐津新摆二辅助软件下载...
一起来探讨!澳门新葡辅助功能软... 一起来探讨!澳门新葡辅助功能软件,澳门新葡确实真的有辅助软件该软件可以轻松地帮助玩家将澳门新葡外卦神...
玩家必看!乐酷大厅辅助功能教程... 玩家必看!乐酷大厅辅助功能教程,乐酷大厅原来有辅助教程1、不需要AI权限,帮助你快速的进行乐酷大厅辅...
总算了解!浙东纸牌透视挂功能技... 总算了解!浙东纸牌透视挂功能技巧,浙东纸牌其实真的有透视挂技巧1、上手简单,内置详细流程视频教学,新...
2024教程!南丰数刀透视功能... 2024教程!南丰数刀透视功能攻略,南丰数刀切实存在有透视攻略1、起透看视 南丰数刀辅助软件价格2、...