Switched GetTasks to IEnumerable<Task>

This commit is contained in:
RogueException
2015-10-12 23:09:26 -03:00
parent e808507558
commit 54fe30a59a
5 changed files with 15 additions and 11 deletions

View File

@@ -1,6 +1,8 @@
using Discord.Helpers;
using Discord.WebSockets.Data;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.ExceptionServices;
using System.Threading;
using System.Threading.Tasks;
@@ -210,7 +212,7 @@ namespace Discord
private async Task RunTasks()
{
Task[] tasks = GetTasks();
Task[] tasks = GetTasks().ToArray();
Task firstTask = Task.WhenAny(tasks);
Task allTasks = Task.WhenAll(tasks);
@@ -239,7 +241,7 @@ namespace Discord
_connectedEvent.Reset();
_runTask = null;
}
protected virtual Task[] GetTasks()
protected virtual IEnumerable<Task> GetTasks()
{
return new Task[] { _cancelToken.Wait() };
}

View File

@@ -108,7 +108,7 @@ namespace Discord.WebSockets.Voice
catch (OperationCanceledException) { }
}
protected override Task[] GetTasks()
protected override IEnumerable<Task> GetTasks()
{
_isClearing = false;

View File

@@ -2,6 +2,7 @@
using Discord.Helpers;
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.ComponentModel;
using System.Net.WebSockets;
using System.Text;
@@ -50,7 +51,7 @@ namespace Discord.WebSockets
return TaskHelper.CompletedTask;
}
public Task[] GetTasks(CancellationToken cancelToken)
public IEnumerable<Task> GetTasks(CancellationToken cancelToken)
{
return new Task[]
{

View File

@@ -2,6 +2,7 @@
using Discord.Helpers;
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using WSSharpNWebSocket = WebSocketSharp.WebSocket;
@@ -68,7 +69,7 @@ namespace Discord.WebSockets
return TaskHelper.CompletedTask;
}
public Task[] GetTasks(CancellationToken cancelToken)
public IEnumerable<Task> GetTasks(CancellationToken cancelToken)
{
return new Task[]
{

View File

@@ -1,6 +1,7 @@
using Discord.Helpers;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.ExceptionServices;
using System.Text;
@@ -29,7 +30,7 @@ namespace Discord.WebSockets
Task Connect(string host, CancellationToken cancelToken);
Task Disconnect();
void QueueMessage(string message);
Task[] GetTasks(CancellationToken cancelToken);
IEnumerable<Task> GetTasks(CancellationToken cancelToken);
}
internal abstract partial class WebSocket
@@ -162,7 +163,7 @@ namespace Discord.WebSockets
protected virtual async Task RunTasks()
{
Task[] tasks = GetTasks();
Task[] tasks = GetTasks().ToArray();
Task firstTask = Task.WhenAny(tasks);
Task allTasks = Task.WhenAll(tasks);
@@ -180,12 +181,11 @@ namespace Discord.WebSockets
//Start cleanup
await Cleanup().ConfigureAwait(false);
}
protected virtual Task[] GetTasks()
protected virtual IEnumerable<Task> GetTasks()
{
var cancelToken = _cancelToken;
return _engine.GetTasks(cancelToken)
.Concat(new Task[] { HeartbeatAsync(cancelToken) })
.ToArray();
return _engine.GetTasks(cancelToken)
.Concat(new Task[] { HeartbeatAsync(cancelToken) });
}
protected virtual async Task Cleanup()
{