mirror of
https://github.com/btcpayserver/btcpayserver.git
synced 2024-11-19 18:11:36 +01:00
38 lines
900 B
C#
38 lines
900 B
C#
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
using System.Linq;
|
|||
|
using System.Runtime.CompilerServices;
|
|||
|
using System.Threading;
|
|||
|
using System.Threading.Tasks;
|
|||
|
|
|||
|
namespace BTCPayServer
|
|||
|
{
|
|||
|
public struct SynchronizationContextRemover : INotifyCompletion
|
|||
|
{
|
|||
|
public bool IsCompleted => SynchronizationContext.Current == null;
|
|||
|
|
|||
|
public void OnCompleted(Action continuation)
|
|||
|
{
|
|||
|
var prev = SynchronizationContext.Current;
|
|||
|
try
|
|||
|
{
|
|||
|
SynchronizationContext.SetSynchronizationContext(null);
|
|||
|
continuation();
|
|||
|
}
|
|||
|
finally
|
|||
|
{
|
|||
|
SynchronizationContext.SetSynchronizationContext(prev);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public SynchronizationContextRemover GetAwaiter()
|
|||
|
{
|
|||
|
return this;
|
|||
|
}
|
|||
|
|
|||
|
public void GetResult()
|
|||
|
{
|
|||
|
}
|
|||
|
}
|
|||
|
}
|