private void StopFlush() {
                lock (FlushTaskCancelationToken) {
                    if (FlushTaskCancelationToken.IsCancellationRequested) {
                        return;
                    }
                    FlushTaskCancelationToken.Cancel();
                }
                if (isFlushRunning) {
                    StoppedFlushHandle.WaitOne();
                }

                PendingScripts.Dispose();
                FlushTaskCancelationToken.Dispose();
            }
 private void FlushScripts() {
     OwnerWebView.ExecuteWithAsyncErrorHandling(() => {
         try {
             isFlushRunning = true;
             while (!FlushTaskCancelationToken.IsCancellationRequested) {
                 InnerFlushScripts();
             }
         } catch (OperationCanceledException) {
             // stop
         } finally {
             isFlushRunning = false;
             StoppedFlushHandle.Set();
         }
     });
 }
Exemplo n.º 3
0
            private void StopFlush()
            {
                lock (FlushTaskCancelationToken) {
                    if (FlushTaskCancelationToken.IsCancellationRequested)
                    {
                        return;
                    }
                    FlushTaskCancelationToken.Cancel();
                }
                if (isFlushRunning)
                {
                    StoppedFlushHandle.WaitOne();
                }

                // signal any pending js evaluations
                foreach (var pendingScript in PendingScripts.ToArray())
                {
                    pendingScript.WaitHandle?.Set();
                }

                PendingScripts.Dispose();
                FlushTaskCancelationToken.Dispose();
            }