diff --git a/src/Discord.Net.Commands/Builders/ModuleClassBuilder.cs b/src/Discord.Net.Commands/Builders/ModuleClassBuilder.cs index 14a40d1fcc..ee9623e034 100644 --- a/src/Discord.Net.Commands/Builders/ModuleClassBuilder.cs +++ b/src/Discord.Net.Commands/Builders/ModuleClassBuilder.cs @@ -211,7 +211,7 @@ async Task ExecuteCallback(ICommandContext context, object[] args, ISer await instance.BeforeExecuteAsync(cmd).ConfigureAwait(false); instance.BeforeExecute(cmd); - var task = method.Invoke(instance, args) as Task ?? Task.Delay(0); + var task = method.Invoke(instance, args) as Task ?? Task.CompletedTask; if (task is Task resultTask) { return await resultTask.ConfigureAwait(false); diff --git a/src/Discord.Net.Core/Audio/AudioStream.cs b/src/Discord.Net.Core/Audio/AudioStream.cs index ad2985fd19..ac5b090caf 100644 --- a/src/Discord.Net.Core/Audio/AudioStream.cs +++ b/src/Discord.Net.Core/Audio/AudioStream.cs @@ -27,7 +27,7 @@ public void Clear() ClearAsync(CancellationToken.None).GetAwaiter().GetResult(); } - public virtual Task ClearAsync(CancellationToken cancellationToken) { return Task.Delay(0); } + public virtual Task ClearAsync(CancellationToken cancellationToken) { return Task.CompletedTask; } /// /// Reading stream length is not supported. diff --git a/src/Discord.Net.Examples/Core/Entities/Channels/IMessageChannel.Examples.cs b/src/Discord.Net.Examples/Core/Entities/Channels/IMessageChannel.Examples.cs index 9b4aee53c4..bfb4883760 100644 --- a/src/Discord.Net.Examples/Core/Entities/Channels/IMessageChannel.Examples.cs +++ b/src/Discord.Net.Examples/Core/Entities/Channels/IMessageChannel.Examples.cs @@ -49,7 +49,7 @@ public async Task GetMessagesExampleBody(IMessageChannel channel) // Another dummy method Task LongRunningAsync() { - return Task.Delay(0); + return Task.CompletedTask; } #region GetMessagesAsync.FromLimit.Standard diff --git a/src/Discord.Net.Interactions/Builders/ModuleClassBuilder.cs b/src/Discord.Net.Interactions/Builders/ModuleClassBuilder.cs index 7a06c050ed..a309a7c3b6 100644 --- a/src/Discord.Net.Interactions/Builders/ModuleClassBuilder.cs +++ b/src/Discord.Net.Interactions/Builders/ModuleClassBuilder.cs @@ -425,7 +425,7 @@ async Task ExecuteCallback(IInteractionContext context, object[] args, { await instance.BeforeExecuteAsync(commandInfo).ConfigureAwait(false); instance.BeforeExecute(commandInfo); - var task = commandInvoker(instance, args) ?? Task.Delay(0); + var task = commandInvoker(instance, args) ?? Task.CompletedTask; if (task is Task runtimeTask) { diff --git a/src/Discord.Net.Rest/BaseDiscordClient.cs b/src/Discord.Net.Rest/BaseDiscordClient.cs index c8c18cb920..5eb56b6b13 100644 --- a/src/Discord.Net.Rest/BaseDiscordClient.cs +++ b/src/Discord.Net.Rest/BaseDiscordClient.cs @@ -124,7 +124,7 @@ internal virtual async Task LoginInternalAsync(TokenType tokenType, string token await _loggedInEvent.InvokeAsync().ConfigureAwait(false); } internal virtual Task OnLoginAsync(TokenType tokenType, string token) - => Task.Delay(0); + => Task.CompletedTask; public async Task LogoutAsync() { @@ -150,7 +150,7 @@ internal virtual async Task LogoutInternalAsync() await _loggedOutEvent.InvokeAsync().ConfigureAwait(false); } internal virtual Task OnLogoutAsync() - => Task.Delay(0); + => Task.CompletedTask; internal virtual void Dispose(bool disposing) { @@ -266,10 +266,10 @@ Task> IDiscordClient.BulkOverwriteGloba /// Task IDiscordClient.StartAsync() - => Task.Delay(0); + => Task.CompletedTask; /// Task IDiscordClient.StopAsync() - => Task.Delay(0); + => Task.CompletedTask; /// /// Creates a test entitlement to a given SKU for a given guild or user. diff --git a/src/Discord.Net.Rest/DiscordRestApiClient.cs b/src/Discord.Net.Rest/DiscordRestApiClient.cs index 9cb5992374..91d533a596 100644 --- a/src/Discord.Net.Rest/DiscordRestApiClient.cs +++ b/src/Discord.Net.Rest/DiscordRestApiClient.cs @@ -195,8 +195,8 @@ private async Task LogoutInternalAsync() LoginState = LoginState.LoggedOut; } - internal virtual Task ConnectInternalAsync() => Task.Delay(0); - internal virtual Task DisconnectInternalAsync(Exception ex = null) => Task.Delay(0); + internal virtual Task ConnectInternalAsync() => Task.CompletedTask; + internal virtual Task DisconnectInternalAsync(Exception ex = null) => Task.CompletedTask; #endregion #region Core diff --git a/src/Discord.Net.Rest/DiscordRestClient.cs b/src/Discord.Net.Rest/DiscordRestClient.cs index e2392b0dd7..2a010e7b0b 100644 --- a/src/Discord.Net.Rest/DiscordRestClient.cs +++ b/src/Discord.Net.Rest/DiscordRestClient.cs @@ -85,7 +85,7 @@ internal void CreateRestSelfUser(API.User user) internal override Task OnLogoutAsync() { _applicationInfo = null; - return Task.Delay(0); + return Task.CompletedTask; } #region Rest interactions diff --git a/src/Discord.Net.Rest/Entities/Channels/RestChannel.cs b/src/Discord.Net.Rest/Entities/Channels/RestChannel.cs index 075959d729..f76e87c564 100644 --- a/src/Discord.Net.Rest/Entities/Channels/RestChannel.cs +++ b/src/Discord.Net.Rest/Entities/Channels/RestChannel.cs @@ -79,7 +79,7 @@ internal virtual void Update(Model model) } /// - public virtual Task UpdateAsync(RequestOptions options = null) => Task.Delay(0); + public virtual Task UpdateAsync(RequestOptions options = null) => Task.CompletedTask; #endregion #region IChannel diff --git a/src/Discord.Net.WebSocket/Audio/Streams/BufferedWriteStream.cs b/src/Discord.Net.WebSocket/Audio/Streams/BufferedWriteStream.cs index 25afde7845..63f7e1b6ea 100644 --- a/src/Discord.Net.WebSocket/Audio/Streams/BufferedWriteStream.cs +++ b/src/Discord.Net.WebSocket/Audio/Streams/BufferedWriteStream.cs @@ -187,7 +187,7 @@ public override Task ClearAsync(CancellationToken cancelToken) do cancelToken.ThrowIfCancellationRequested(); while (_queuedFrames.TryDequeue(out _)); - return Task.Delay(0); + return Task.CompletedTask; } } } diff --git a/src/Discord.Net.WebSocket/Audio/Streams/InputStream.cs b/src/Discord.Net.WebSocket/Audio/Streams/InputStream.cs index 6233c47b57..e7799ac8d5 100644 --- a/src/Discord.Net.WebSocket/Audio/Streams/InputStream.cs +++ b/src/Discord.Net.WebSocket/Audio/Streams/InputStream.cs @@ -76,7 +76,7 @@ public override Task WriteAsync(byte[] buffer, int offset, int count, Cancellati if (_signal.CurrentCount >= MaxFrames) //1-2 seconds { _hasHeader = false; - return Task.Delay(0); //Buffer overloaded + return Task.CompletedTask; //Buffer overloaded } if (!_hasHeader) throw new InvalidOperationException("Received payload without an RTP header"); @@ -91,7 +91,7 @@ public override Task WriteAsync(byte[] buffer, int offset, int count, Cancellati payload: payload )); _signal.Release(); - return Task.Delay(0); + return Task.CompletedTask; } protected override void Dispose(bool isDisposing) diff --git a/src/Discord.Net.WebSocket/Audio/Streams/JitterBuffer.cs b/src/Discord.Net.WebSocket/Audio/Streams/JitterBuffer.cs index 5d7bb09093..bb2de67b9c 100644 --- a/src/Discord.Net.WebSocket/Audio/Streams/JitterBuffer.cs +++ b/src/Discord.Net.WebSocket/Audio/Streams/JitterBuffer.cs @@ -240,7 +240,7 @@ public override Task ClearAsync(CancellationToken cancelToken) do cancelToken.ThrowIfCancellationRequested(); while (_queuedFrames.TryDequeue(out Frame ignored)); - return Task.Delay(0); + return Task.CompletedTask; } } }*/ diff --git a/src/Discord.Net.WebSocket/DiscordShardedClient.cs b/src/Discord.Net.WebSocket/DiscordShardedClient.cs index c1c8d5f9b7..71bb413aaf 100644 --- a/src/Discord.Net.WebSocket/DiscordShardedClient.cs +++ b/src/Discord.Net.WebSocket/DiscordShardedClient.cs @@ -428,7 +428,7 @@ private void RegisterEvents(DiscordSocketClient client, bool isPrimary) //Should only happen if token is changed var _ = LogoutAsync(); //Signal the logout, fire and forget } - return Task.Delay(0); + return Task.CompletedTask; }; client.SentRequest += (method, endpoint, millis) => _sentRequest.InvokeAsync(method, endpoint, millis); diff --git a/src/Discord.Net.WebSocket/DiscordSocketClient.cs b/src/Discord.Net.WebSocket/DiscordSocketClient.cs index 06eb3628aa..bd9b1b04ca 100644 --- a/src/Discord.Net.WebSocket/DiscordSocketClient.cs +++ b/src/Discord.Net.WebSocket/DiscordSocketClient.cs @@ -200,7 +200,7 @@ private DiscordSocketClient(DiscordSocketConfig config, API.DiscordSocketApiClie { var _ = g.DownloadUsersAsync(); } - return Task.Delay(0); + return Task.CompletedTask; }; _largeGuilds = new ConcurrentQueue(); diff --git a/src/Discord.Net.WebSocket/Entities/Guilds/SocketGuild.cs b/src/Discord.Net.WebSocket/Entities/Guilds/SocketGuild.cs index 292bd8b38d..7b388f3e47 100644 --- a/src/Discord.Net.WebSocket/Entities/Guilds/SocketGuild.cs +++ b/src/Discord.Net.WebSocket/Entities/Guilds/SocketGuild.cs @@ -1793,7 +1793,7 @@ internal async Task ConnectAudioAsync(ulong channelId, bool selfDe audioClient.Connected += () => { _ = promise.TrySetResultAsync(_audioClient); - return Task.Delay(0); + return Task.CompletedTask; }; _audioClient = audioClient; diff --git a/src/Discord.Net.WebSocket/Net/DefaultUdpSocket.cs b/src/Discord.Net.WebSocket/Net/DefaultUdpSocket.cs index 91bb3378b7..bf698bb4b8 100644 --- a/src/Discord.Net.WebSocket/Net/DefaultUdpSocket.cs +++ b/src/Discord.Net.WebSocket/Net/DefaultUdpSocket.cs @@ -92,7 +92,7 @@ public async Task StopInternalAsync(bool isDisposing = false) catch { } if (!isDisposing) - await (_task ?? Task.Delay(0)).ConfigureAwait(false); + await (_task ?? Task.CompletedTask).ConfigureAwait(false); if (_udp != null) { diff --git a/src/Discord.Net.WebSocket/Net/DefaultWebSocketClient.cs b/src/Discord.Net.WebSocket/Net/DefaultWebSocketClient.cs index ee41ed626c..2f888b89bf 100644 --- a/src/Discord.Net.WebSocket/Net/DefaultWebSocketClient.cs +++ b/src/Discord.Net.WebSocket/Net/DefaultWebSocketClient.cs @@ -140,7 +140,7 @@ private async Task DisconnectInternalAsync(int closeCode = 1000, bool isDisposin try { - await (_task ?? Task.Delay(0)).ConfigureAwait(false); + await (_task ?? Task.CompletedTask).ConfigureAwait(false); _task = null; } finally { _isDisconnecting = false; } diff --git a/test/Discord.Net.Tests.Unit/TypeReaderTests.cs b/test/Discord.Net.Tests.Unit/TypeReaderTests.cs index 59eb3136cf..39ea71a473 100644 --- a/test/Discord.Net.Tests.Unit/TypeReaderTests.cs +++ b/test/Discord.Net.Tests.Unit/TypeReaderTests.cs @@ -137,6 +137,6 @@ public override Task ReadAsync(ICommandContext context, string public sealed class TestModule : ModuleBase { [Command("test")] - public Task TestCommand(ArgumentType arg) => Task.Delay(0); + public Task TestCommand(ArgumentType arg) => Task.CompletedTask; } }