|
|
@@ -9,20 +9,6 @@ namespace Avalonia.Threading
|
|
|
/// </summary>
|
|
|
public class AvaloniaSynchronizationContext : SynchronizationContext
|
|
|
{
|
|
|
- public interface INonPumpingPlatformWaitProvider
|
|
|
- {
|
|
|
- int Wait(IntPtr[] waitHandles, bool waitAll, int millisecondsTimeout);
|
|
|
- }
|
|
|
-
|
|
|
- private readonly INonPumpingPlatformWaitProvider _waitProvider;
|
|
|
-
|
|
|
- public AvaloniaSynchronizationContext(INonPumpingPlatformWaitProvider waitProvider)
|
|
|
- {
|
|
|
- _waitProvider = waitProvider;
|
|
|
- if (_waitProvider != null)
|
|
|
- SetWaitNotificationRequired();
|
|
|
- }
|
|
|
-
|
|
|
/// <summary>
|
|
|
/// Controls if SynchronizationContext should be installed in InstallIfNeeded. Used by Designer.
|
|
|
/// </summary>
|
|
|
@@ -38,8 +24,7 @@ namespace Avalonia.Threading
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- SetSynchronizationContext(new AvaloniaSynchronizationContext(AvaloniaLocator.Current
|
|
|
- .GetService<INonPumpingPlatformWaitProvider>()));
|
|
|
+ SetSynchronizationContext(new AvaloniaSynchronizationContext());
|
|
|
}
|
|
|
|
|
|
/// <inheritdoc/>
|
|
|
@@ -57,12 +42,6 @@ namespace Avalonia.Threading
|
|
|
Dispatcher.UIThread.InvokeAsync(() => d(state), DispatcherPriority.Send).Wait();
|
|
|
}
|
|
|
|
|
|
- [PrePrepareMethod]
|
|
|
- public override int Wait(IntPtr[] waitHandles, bool waitAll, int millisecondsTimeout)
|
|
|
- {
|
|
|
- if (_waitProvider != null)
|
|
|
- return _waitProvider.Wait(waitHandles, waitAll, millisecondsTimeout);
|
|
|
- return base.Wait(waitHandles, waitAll, millisecondsTimeout);
|
|
|
- }
|
|
|
+
|
|
|
}
|
|
|
}
|