Beispiel #1
0
        private async Task LookForBpScreen()
        {
            _scanningCancellationToken?.Cancel();
            // cancel the other thread
            MapOnlyCancellationToken?.Cancel();
            CancellationTokenSource currentCancellationToken;

            lock (LookForBpTokenLock)
            {
                MapOnlyCancellationToken = new CancellationTokenSource();
                currentCancellationToken = MapOnlyCancellationToken;
            }
            await OcrUtil.LookForBpScreen(MapOnlyCancellationToken.Token);

            if (!currentCancellationToken.IsCancellationRequested)
            {
                Execute.OnUIThread(() =>
                {
                    LoadMapUi();
                    if (!IsAutoMode)
                    {
                        BpScreenLoaded = true;
                    }
                });
            }
            else
            {
                return;
            }

            if (IsAutoMode)
            {
                _hasLookedForMap = true;
                if (currentCancellationToken.IsCancellationRequested)
                {
                    return;
                }

                await LookForMap().ConfigureAwait(false);
            }
        }
Beispiel #2
0
 public void CancelAllActiveScan()
 {
     _scanningCancellationToken?.Cancel();
     MapOnlyCancellationToken?.Cancel();
 }