0

在一个非常简单Xamarin android APP的情况下,我使用扫描条形码ZXing然后处理结果。处理结果需要几秒钟的时间来处理,并且在我想显示一个ACR showLoading时,但是当扫描仪/相机关闭时,活动指示器几乎立即隐藏。

如何在处理结果时保持显示加载打开?

清理后的代码:

    async void onAddByScan(object sender, EventArgs e)
    {
        var options = new ZXing.Mobile.MobileBarcodeScanningOptions();
        var scanner = new MobileBarcodeScanner();
        ZXing.Result result = await scanner.Scan(options);
        using (UserDialogs.Instance.Loading())
        {
            await HandleResultAsync(result);
        }
    }

    async Task HandleResultAsync(ZXing.Result result)
    {
        //do something with the results
    }
4

1 回答 1

0

您可以在Xamarin.Essentials: MainThread类中使用 InvokeOnMainThreadAsync 方法。这种方法的想法不仅是在 UI/主线程上执行代码,而且还要等待它的代码。这样你就可以同时拥有异步/等待逻辑和主线程执行。

您可以参考类似的案例https://stackoverflow.com/a/67483594/10768653

于 2021-05-31T01:47:32.343 回答