| @@ -200,7 +200,7 @@ namespace Discord | |||||
| private async Task RunTasks() | private async Task RunTasks() | ||||
| { | { | ||||
| Task[] tasks = Run(); | |||||
| Task[] tasks = GetTasks(); | |||||
| Task firstTask = Task.WhenAny(tasks); | Task firstTask = Task.WhenAny(tasks); | ||||
| Task allTasks = Task.WhenAll(tasks); | Task allTasks = Task.WhenAll(tasks); | ||||
| @@ -229,7 +229,7 @@ namespace Discord | |||||
| _connectedEvent.Reset(); | _connectedEvent.Reset(); | ||||
| _runTask = null; | _runTask = null; | ||||
| } | } | ||||
| protected virtual Task[] Run() | |||||
| protected virtual Task[] GetTasks() | |||||
| { | { | ||||
| return new Task[] { _cancelToken.Wait() }; | return new Task[] { _cancelToken.Wait() }; | ||||
| } | } | ||||
| @@ -247,7 +247,13 @@ namespace Discord | |||||
| //Helpers | //Helpers | ||||
| /// <summary> Blocking call that will not return until client has been stopped. This is mainly intended for use in console applications. </summary> | /// <summary> Blocking call that will not return until client has been stopped. This is mainly intended for use in console applications. </summary> | ||||
| public void Block() | |||||
| public void Run(Func<Task> asyncAction) | |||||
| { | |||||
| asyncAction().Wait(); | |||||
| _disconnectedEvent.WaitOne(); | |||||
| } | |||||
| /// <summary> Blocking call that will not return until client has been stopped. This is mainly intended for use in console applications. </summary> | |||||
| public void Run() | |||||
| { | { | ||||
| _disconnectedEvent.WaitOne(); | _disconnectedEvent.WaitOne(); | ||||
| } | } | ||||
| @@ -106,7 +106,7 @@ namespace Discord.WebSockets.Voice | |||||
| catch (OperationCanceledException) { } | catch (OperationCanceledException) { } | ||||
| } | } | ||||
| protected override Task[] Run() | |||||
| protected override Task[] GetTasks() | |||||
| { | { | ||||
| _isClearing = false; | _isClearing = false; | ||||
| @@ -145,7 +145,7 @@ namespace Discord.WebSockets.Voice | |||||
| #if !DNXCORE50 | #if !DNXCORE50 | ||||
| tasks.Add(WatcherAsync()); | tasks.Add(WatcherAsync()); | ||||
| #endif | #endif | ||||
| tasks.AddRange(base.Run()); | |||||
| tasks.AddRange(base.GetTasks()); | |||||
| return tasks.ToArray(); | return tasks.ToArray(); | ||||
| } | } | ||||
| @@ -49,7 +49,7 @@ namespace Discord.WebSockets | |||||
| return TaskHelper.CompletedTask; | return TaskHelper.CompletedTask; | ||||
| } | } | ||||
| public Task[] RunTasks(CancellationToken cancelToken) | |||||
| public Task[] GetTasks(CancellationToken cancelToken) | |||||
| { | { | ||||
| return new Task[] | return new Task[] | ||||
| { | { | ||||
| @@ -29,7 +29,7 @@ namespace Discord.WebSockets | |||||
| Task Connect(string host, CancellationToken cancelToken); | Task Connect(string host, CancellationToken cancelToken); | ||||
| Task Disconnect(); | Task Disconnect(); | ||||
| void QueueMessage(byte[] message); | void QueueMessage(byte[] message); | ||||
| Task[] RunTasks(CancellationToken cancelToken); | |||||
| Task[] GetTasks(CancellationToken cancelToken); | |||||
| } | } | ||||
| internal abstract partial class WebSocket | internal abstract partial class WebSocket | ||||
| @@ -147,7 +147,7 @@ namespace Discord.WebSockets | |||||
| protected virtual async Task RunTasks() | protected virtual async Task RunTasks() | ||||
| { | { | ||||
| Task[] tasks = Run(); | |||||
| Task[] tasks = GetTasks(); | |||||
| Task firstTask = Task.WhenAny(tasks); | Task firstTask = Task.WhenAny(tasks); | ||||
| Task allTasks = Task.WhenAll(tasks); | Task allTasks = Task.WhenAll(tasks); | ||||
| @@ -165,10 +165,10 @@ namespace Discord.WebSockets | |||||
| //Start cleanup | //Start cleanup | ||||
| await Cleanup().ConfigureAwait(false); | await Cleanup().ConfigureAwait(false); | ||||
| } | } | ||||
| protected virtual Task[] Run() | |||||
| protected virtual Task[] GetTasks() | |||||
| { | { | ||||
| var cancelToken = _cancelToken; | var cancelToken = _cancelToken; | ||||
| return _engine.RunTasks(cancelToken) | |||||
| return _engine.GetTasks(cancelToken) | |||||
| .Concat(new Task[] { HeartbeatAsync(cancelToken) }) | .Concat(new Task[] { HeartbeatAsync(cancelToken) }) | ||||
| .ToArray(); | .ToArray(); | ||||
| } | } | ||||