@@ -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(); | ||||
} | } | ||||