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、玩家可以在闲聚大联盟辅...
有了最新消息!欢聚水鱼智能辅助... 有了最新消息!欢聚水鱼智能辅助app,决战卡五星游戏辅助器-原来是真的有辅助app(哔哩哔哩)所有人...
黑科技教程!丰城双剑辅助,永胜... 黑科技教程!丰城双剑辅助,永胜联盟会封号吗-都是真的有辅助器(哔哩哔哩)1、任何永胜联盟会封号吗透视...
于此同时!新上游透视辅助,榆林... 于此同时!新上游透视辅助,榆林打锅子辅助器-果然真的有辅助挂(哔哩哔哩)1)榆林打锅子辅助器辅助插件...
透视实锤!悠闲卡五星辅助,微信... 您好,微信微乐游戏辅助脚本这款游戏可以开挂的,确实是有挂的,需要了解加去威信【485275054】很...
据文件显示!随意玩房卡辅助器透... 据文件显示!随意玩房卡辅助器透视,潮汕汇辅助器-一贯真的是有辅助app(哔哩哔哩)该软件可以轻松地帮...
黑科技技巧!新道游怎么开挂,新... 黑科技技巧!新道游怎么开挂,新海贝之城脚本-其实确实有辅助技巧(哔哩哔哩)运新海贝之城脚本辅助工具,...
透视了解!衡阳丫丫辅助,爱来大... 透视了解!衡阳丫丫辅助,爱来大菠萝怎么玩-果然是真的有辅助app(哔哩哔哩)爱来大菠萝怎么玩透视方法...
技巧辅助挂!钱塘十三水辅助器软... 技巧辅助挂!钱塘十三水辅助器软件,越乡游义乌辅助器免费试用-好像是有辅助教程(哔哩哔哩)1、下载好越...