fix: fix close from non-ui thread.

This commit is contained in:
rabbitism
2024-02-02 20:35:11 +08:00
parent 97d641f8a1
commit 3ee3e713a5

View File

@@ -5,6 +5,7 @@ using Avalonia.Controls.Primitives;
using Avalonia.Input;
using Avalonia.Input.GestureRecognizers;
using Avalonia.Interactivity;
using Avalonia.Threading;
using Ursa.Common;
namespace Ursa.Controls;
@@ -91,7 +92,10 @@ public class DialogControl: ContentControl
public Task<T?> ShowAsync<T>(CancellationToken? token = default)
{
var tcs = new TaskCompletionSource<T?>();
token?.Register(CloseDialog);
token?.Register(() =>
{
Dispatcher.UIThread.Invoke(CloseDialog);
});
void OnCloseHandler(object sender, object? args)
{
if (args is T result)