using System; using System.Threading; using System.Threading.Tasks; using Avalonia.Threading; namespace Avalonia.UnitTests { /// /// Immediately invokes dispatched jobs on the current thread. /// public class ImmediateDispatcher : IDispatcher { /// public bool CheckAccess() { return true; } /// public void Post(Action action, DispatcherPriority priority) { action(); } /// public void Post(SendOrPostCallback action, object arg, DispatcherPriority priority) { action(arg); } /// public Task InvokeAsync(Action action, DispatcherPriority priority) { action(); return Task.CompletedTask; } /// public Task InvokeAsync(Func function, DispatcherPriority priority) { var result = function(); return Task.FromResult(result); } /// public Task InvokeAsync(Func function, DispatcherPriority priority) { return function(); } /// public Task InvokeAsync(Func> function, DispatcherPriority priority) { return function(); } /// public void VerifyAccess() { } } }