Beispiel #1
0
        protected static void InvokeOnUIThread(Action <CancellationToken> action)
        {
            using var cancellationTokenSource = new CancellationTokenSource(Helper.HangMitigatingTimeout);
#pragma warning disable VSTHRD001 // Avoid legacy thread switching APIs
            CurrentApplicationDispatcher.Invoke(() => action(cancellationTokenSource.Token), DispatcherPriority.Background, cancellationToken: cancellationTokenSource.Token);
#pragma warning restore VSTHRD001 // Avoid legacy thread switching APIs
        }
Beispiel #2
0
#pragma warning restore VSTHRD001 // Avoid legacy thread switching APIs

        protected static void WaitForSystemIdle()
#pragma warning disable VSTHRD001 // Avoid legacy thread switching APIs
        => CurrentApplicationDispatcher.Invoke(() => { }, DispatcherPriority.SystemIdle);
Beispiel #3
0
        /// <summary>
        /// Waiting for the application to 'idle' means that it is done pumping messages (including WM_PAINT).
        /// </summary>
        protected static void WaitForApplicationIdle(TimeSpan timeout)
#pragma warning disable VSTHRD001 // Avoid legacy thread switching APIs
        => CurrentApplicationDispatcher.InvokeAsync(() => { }, DispatcherPriority.ApplicationIdle).Wait(timeout);
Beispiel #4
0
 public static T InvokeOnUIThread <T>(Func <T> action) => CurrentApplicationDispatcher.Invoke(action);
Beispiel #5
0
 public static void InvokeOnUIThread(Action action) => CurrentApplicationDispatcher.Invoke(action);
Beispiel #6
0
 public static void WaitForApplicationIdle() => CurrentApplicationDispatcher.Invoke(() => { }, DispatcherPriority.ApplicationIdle);
Beispiel #7
0
#pragma warning restore VSTHRD001 // Avoid legacy thread switching APIs

        protected static T InvokeOnUIThread <T>(Func <T> action)
#pragma warning disable VSTHRD001 // Avoid legacy thread switching APIs
        => CurrentApplicationDispatcher.Invoke(action, DispatcherPriority.Background);