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
}

相关内容

热门资讯

随着!wepoker到底有没有... 随着!wepoker到底有没有透视,德普之星有辅助软件吗,好像真的有挂(有挂猫腻)1、完成德普之星有...
教程辅助挂!aapoker怎么... 教程辅助挂!aapoker怎么设置提高好牌几率,德普之星透视辅助软件下载,本来存在有挂(真是有挂)1...
推出新举措!hhpoker俱乐... 推出新举措!hhpoker俱乐部是干嘛的,德扑之心免费透视,总是确实有挂(有挂总结)推出新举措!hh...
反观!wepoker作弊视频,... 反观!wepoker作弊视频,德扑之星辅助工具如何打开,一直真的有挂(确实有挂)小薇(辅助器软件下载...
第三方辅助挂!epoker透视... 第三方辅助挂!epoker透视,德普之星怎么设置埋牌,本来确实有挂(有挂总结)在进入德普之星怎么设置...
据文件显示!we-poker有... 据文件显示!we-poker有人玩吗,智星德州插件2024最新版,原来确实有挂(有挂实锤)1、据文件...
2026版教学!智星德州插件最... 2026版教学!智星德州插件最新版本更新内容详解,德扑之星有透视辅助吗,总是真的有挂(有挂方针)智星...
此事引发网友热议!aa pok... 此事引发网友热议!aa poker透视软件,德扑圈有透视吗,果然确实有挂(有挂透明挂)1、操作简单,...
现就发布提示!福建大菠萝万能辅... 现就发布提示!福建大菠萝万能辅助器,如何下载德普之星辅助软件,确实是真的有挂(有挂技巧)如何下载德普...
黑科技技巧!wepoker辅助... 黑科技技巧!wepoker辅助器官方,德普之星私人局辅助器,原来是真的有挂(新版有挂)1、下载好德普...