fix: fix close from non-ui thread.
This commit is contained in:
@@ -5,6 +5,7 @@ using Avalonia.Controls.Primitives;
|
|||||||
using Avalonia.Input;
|
using Avalonia.Input;
|
||||||
using Avalonia.Input.GestureRecognizers;
|
using Avalonia.Input.GestureRecognizers;
|
||||||
using Avalonia.Interactivity;
|
using Avalonia.Interactivity;
|
||||||
|
using Avalonia.Threading;
|
||||||
using Ursa.Common;
|
using Ursa.Common;
|
||||||
|
|
||||||
namespace Ursa.Controls;
|
namespace Ursa.Controls;
|
||||||
@@ -91,7 +92,10 @@ public class DialogControl: ContentControl
|
|||||||
public Task<T?> ShowAsync<T>(CancellationToken? token = default)
|
public Task<T?> ShowAsync<T>(CancellationToken? token = default)
|
||||||
{
|
{
|
||||||
var tcs = new TaskCompletionSource<T?>();
|
var tcs = new TaskCompletionSource<T?>();
|
||||||
token?.Register(CloseDialog);
|
token?.Register(() =>
|
||||||
|
{
|
||||||
|
Dispatcher.UIThread.Invoke(CloseDialog);
|
||||||
|
});
|
||||||
void OnCloseHandler(object sender, object? args)
|
void OnCloseHandler(object sender, object? args)
|
||||||
{
|
{
|
||||||
if (args is T result)
|
if (args is T result)
|
||||||
|
|||||||
Reference in New Issue
Block a user