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
}

相关内容

热门资讯

外挂手筋!拱趴大菠萝十三水作必... 外挂手筋!拱趴大菠萝十三水作必弊,sohoopoker辅助-一直存在有辅助神器(哔哩哔哩)一、拱趴大...
外挂步骤!wepoker安装教... 外挂步骤!wepoker安装教程,佛手在线大菠萝为什么都输-果然真的有辅助软件(哔哩哔哩)1)佛手在...
外挂演示!菠萝辅助器免费版的特... 外挂演示!菠萝辅助器免费版的特点,约局吧作必弊脚本-好像有辅助工具(哔哩哔哩);1、超多福利:超高返...
外挂指引!哈糖大菠萝免费辅助器... 外挂指引!哈糖大菠萝免费辅助器,pokermaster破解版-果然存在有辅助脚本(哔哩哔哩)哈糖大菠...
外挂步骤!hardrock透视... 外挂步骤!hardrock透视工具,竞技联盟破解版最新版-竟然有辅助软件(哔哩哔哩)所有人都在同一条...
外挂法子!福建大菠萝万能辅助器... 外挂法子!福建大菠萝万能辅助器,德普之星私人局辅助免费-原来是有辅助技巧(哔哩哔哩)1、任何福建大菠...
外挂阶段!sohoopoker... 外挂阶段!sohoopoker辅助,竞技联盟透视-确实一直都是有辅助攻略(哔哩哔哩)一、竞技联盟透视...
外挂窍门!哈糖大菠萝有没有挂,... 外挂窍门!哈糖大菠萝有没有挂,德州私人局脚本-一直有辅助技巧(哔哩哔哩)1、许多玩家不知道哈糖大菠萝...
外挂阶段!xpoker辅助,w... 外挂阶段!xpoker辅助,werplan辅助软件-竟然是有辅助软件(哔哩哔哩);1、起透看视 we...
外挂绝活!佛手在线是不是有挂,... 外挂绝活!佛手在线是不是有挂,werplan免费挂下载-总是是真的有辅助教程(哔哩哔哩)1、佛手在线...