Browse Source

Renamed Block to Run, provides an async function wrapper for console apps

tags/docs-0.9
RogueException 9 years ago
parent
commit
3e96c05c48
4 changed files with 16 additions and 10 deletions
  1. +9
    -3
      src/Discord.Net/DiscordSimpleClient.cs
  2. +2
    -2
      src/Discord.Net/WebSockets/Voice/VoiceWebSocket.cs
  3. +1
    -1
      src/Discord.Net/WebSockets/WebSocket.BuiltIn.cs
  4. +4
    -4
      src/Discord.Net/WebSockets/WebSocket.cs

+ 9
- 3
src/Discord.Net/DiscordSimpleClient.cs View File

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


+ 2
- 2
src/Discord.Net/WebSockets/Voice/VoiceWebSocket.cs View File

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


+ 1
- 1
src/Discord.Net/WebSockets/WebSocket.BuiltIn.cs View File

@@ -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[]
{ {


+ 4
- 4
src/Discord.Net/WebSockets/WebSocket.cs View File

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


Loading…
Cancel
Save