26 lines
515 B
C#
26 lines
515 B
C#
using Avalonia.Threading;
|
|
|
|
namespace AcDream.Launcher.ViewModels;
|
|
|
|
public interface IUiDispatcher
|
|
{
|
|
void Post(Action action);
|
|
}
|
|
|
|
public sealed class AvaloniaUiDispatcher : IUiDispatcher
|
|
{
|
|
public void Post(Action action)
|
|
{
|
|
ArgumentNullException.ThrowIfNull(action);
|
|
Dispatcher.UIThread.Post(action);
|
|
}
|
|
}
|
|
|
|
public sealed class ImmediateUiDispatcher : IUiDispatcher
|
|
{
|
|
public void Post(Action action)
|
|
{
|
|
ArgumentNullException.ThrowIfNull(action);
|
|
action();
|
|
}
|
|
}
|