BettingBot.Source.Common.AsyncHelpers.RunSync C# (CSharp) Method

RunSync() public static method

Execute's an async Task method which has a void return value synchronously
public static RunSync ( Func task ) : void
task Func Task method to execute
return void
        public static void RunSync(Func<Task> task)
        {
            var oldContext = SynchronizationContext.Current;
            var synch = new ExclusiveSynchronizationContext();
            SynchronizationContext.SetSynchronizationContext(synch);
            synch.Post(async _ =>
            {
                try
                {
                    await task();
                }
                catch (Exception e)
                {
                    synch.InnerException = e;
                    throw;
                }
                finally
                {
                    synch.EndMessageLoop();
                }
            }, null);
            synch.BeginMessageLoop();

            SynchronizationContext.SetSynchronizationContext(oldContext);
        }

Same methods

AsyncHelpers::RunSync ( Func task ) : T
AsyncHelpers