diff --git a/src/Avalonia.Remote.Protocol/TransportConnectionWrapper.cs b/src/Avalonia.Remote.Protocol/TransportConnectionWrapper.cs index 1e821b7c24..d7919af9d9 100644 --- a/src/Avalonia.Remote.Protocol/TransportConnectionWrapper.cs +++ b/src/Avalonia.Remote.Protocol/TransportConnectionWrapper.cs @@ -64,7 +64,7 @@ namespace Avalonia.Remote.Protocol public Task Send(object data) { - var tcs = new TaskCompletionSource(); + var tcs = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); lock (_lock) { if (!_workerIsAlive) @@ -79,8 +79,9 @@ namespace Avalonia.Remote.Protocol }); if (_signal != null) { - _signal.SetResult(0); + var signal = _signal; _signal = null; + signal.SetResult(0); } } return tcs.Task; @@ -98,4 +99,4 @@ namespace Avalonia.Remote.Protocol remove => _onException.Remove(value); } } -} \ No newline at end of file +}