diff --git a/async-csharp/TaskCompletedTaskFromResultVsReturnInCSharp/TaskCompletedVsTaskFromResultVsReturnInCSharp/ConsoleNotificationHandler.cs b/async-csharp/TaskCompletedTaskFromResultVsReturnInCSharp/TaskCompletedVsTaskFromResultVsReturnInCSharp/ConsoleNotificationHandler.cs
new file mode 100644
index 0000000000..944e7b7d91
--- /dev/null
+++ b/async-csharp/TaskCompletedTaskFromResultVsReturnInCSharp/TaskCompletedVsTaskFromResultVsReturnInCSharp/ConsoleNotificationHandler.cs
@@ -0,0 +1,11 @@
+namespace TaskCompletedVsTaskFromResultVsReturnInCSharp;
+
+public class ConsoleNotificationHandler : INotificationHandler
+{
+ public Task HandleAsync(string message)
+ {
+ Console.WriteLine(message);
+
+ return Task.CompletedTask;
+ }
+}
\ No newline at end of file
diff --git a/async-csharp/TaskCompletedTaskFromResultVsReturnInCSharp/TaskCompletedVsTaskFromResultVsReturnInCSharp/INotificationHandler.cs b/async-csharp/TaskCompletedTaskFromResultVsReturnInCSharp/TaskCompletedVsTaskFromResultVsReturnInCSharp/INotificationHandler.cs
new file mode 100644
index 0000000000..1070ed11be
--- /dev/null
+++ b/async-csharp/TaskCompletedTaskFromResultVsReturnInCSharp/TaskCompletedVsTaskFromResultVsReturnInCSharp/INotificationHandler.cs
@@ -0,0 +1,6 @@
+namespace TaskCompletedVsTaskFromResultVsReturnInCSharp;
+
+public interface INotificationHandler
+{
+ Task HandleAsync(string message);
+}
\ No newline at end of file
diff --git a/async-csharp/TaskCompletedTaskFromResultVsReturnInCSharp/TaskCompletedVsTaskFromResultVsReturnInCSharp/Program.cs b/async-csharp/TaskCompletedTaskFromResultVsReturnInCSharp/TaskCompletedVsTaskFromResultVsReturnInCSharp/Program.cs
index cda0e1b40a..addc51b02f 100644
--- a/async-csharp/TaskCompletedTaskFromResultVsReturnInCSharp/TaskCompletedVsTaskFromResultVsReturnInCSharp/Program.cs
+++ b/async-csharp/TaskCompletedTaskFromResultVsReturnInCSharp/TaskCompletedVsTaskFromResultVsReturnInCSharp/Program.cs
@@ -2,11 +2,9 @@
var taskCompletedClass = new TaskCompletedHandler();
await taskCompletedClass.UseTaskCompletedAsync();
-taskCompletedClass.UseTaskCompletedSync();
var taskFromResultClass = new TaskFromResultHandler();
await taskFromResultClass.UseTaskFromResultAsync();
-taskFromResultClass.UseTaskFromResultSync();
var returnClass = new ReturnHandler();
await returnClass.UseReturnAsync();
diff --git a/async-csharp/TaskCompletedTaskFromResultVsReturnInCSharp/TaskCompletedVsTaskFromResultVsReturnInCSharp/TaskCompletedHandler.cs b/async-csharp/TaskCompletedTaskFromResultVsReturnInCSharp/TaskCompletedVsTaskFromResultVsReturnInCSharp/TaskCompletedHandler.cs
index 6ae5d7b174..fc201adf45 100644
--- a/async-csharp/TaskCompletedTaskFromResultVsReturnInCSharp/TaskCompletedVsTaskFromResultVsReturnInCSharp/TaskCompletedHandler.cs
+++ b/async-csharp/TaskCompletedTaskFromResultVsReturnInCSharp/TaskCompletedVsTaskFromResultVsReturnInCSharp/TaskCompletedHandler.cs
@@ -8,11 +8,4 @@ public Task UseTaskCompletedAsync()
return Task.CompletedTask;
}
-
- public void UseTaskCompletedSync()
- {
- Console.WriteLine("Performing a synchronous work.");
-
- Task.CompletedTask.Wait();
- }
}
\ No newline at end of file
diff --git a/async-csharp/TaskCompletedTaskFromResultVsReturnInCSharp/TaskCompletedVsTaskFromResultVsReturnInCSharp/TaskCompletedVsTaskFromResultVsReturnInCSharp.csproj b/async-csharp/TaskCompletedTaskFromResultVsReturnInCSharp/TaskCompletedVsTaskFromResultVsReturnInCSharp/TaskCompletedVsTaskFromResultVsReturnInCSharp.csproj
index f02677bf64..dfb40caafc 100644
--- a/async-csharp/TaskCompletedTaskFromResultVsReturnInCSharp/TaskCompletedVsTaskFromResultVsReturnInCSharp/TaskCompletedVsTaskFromResultVsReturnInCSharp.csproj
+++ b/async-csharp/TaskCompletedTaskFromResultVsReturnInCSharp/TaskCompletedVsTaskFromResultVsReturnInCSharp/TaskCompletedVsTaskFromResultVsReturnInCSharp.csproj
@@ -2,7 +2,7 @@
Exe
- net7.0
+ net10.0
enable
enable
diff --git a/async-csharp/TaskCompletedTaskFromResultVsReturnInCSharp/TaskCompletedVsTaskFromResultVsReturnInCSharp/TaskFromResultHandler.cs b/async-csharp/TaskCompletedTaskFromResultVsReturnInCSharp/TaskCompletedVsTaskFromResultVsReturnInCSharp/TaskFromResultHandler.cs
index 7929db35ba..012cb74f27 100644
--- a/async-csharp/TaskCompletedTaskFromResultVsReturnInCSharp/TaskCompletedVsTaskFromResultVsReturnInCSharp/TaskFromResultHandler.cs
+++ b/async-csharp/TaskCompletedTaskFromResultVsReturnInCSharp/TaskCompletedVsTaskFromResultVsReturnInCSharp/TaskFromResultHandler.cs
@@ -2,21 +2,12 @@
public class TaskFromResultHandler
{
- public async Task UseTaskFromResultAsync()
+ public Task UseTaskFromResultAsync()
{
Console.WriteLine("Not performing any asynchronous work but returning a result.");
var message = "Hello, world!";
- return await Task.FromResult(message);
- }
-
- public string UseTaskFromResultSync()
- {
- Console.WriteLine("Performing a synchronous work.");
-
- var message = "Hello, world!";
-
- return Task.FromResult(message).Result;
+ return Task.FromResult(message);
}
}
\ No newline at end of file
diff --git a/async-csharp/TaskCompletedTaskFromResultVsReturnInCSharp/Tests/TaskCompletedVsTaskFromResultVsReturnInCSharpTests.csproj b/async-csharp/TaskCompletedTaskFromResultVsReturnInCSharp/Tests/TaskCompletedVsTaskFromResultVsReturnInCSharpTests.csproj
index c6f372580a..f6f7ed0ced 100644
--- a/async-csharp/TaskCompletedTaskFromResultVsReturnInCSharp/Tests/TaskCompletedVsTaskFromResultVsReturnInCSharpTests.csproj
+++ b/async-csharp/TaskCompletedTaskFromResultVsReturnInCSharp/Tests/TaskCompletedVsTaskFromResultVsReturnInCSharpTests.csproj
@@ -1,7 +1,7 @@
- net7.0
+ net10.0
enable
enable
@@ -10,13 +10,13 @@
-
-
-
+
+
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
-
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
diff --git a/async-csharp/TaskCompletedTaskFromResultVsReturnInCSharp/Tests/TaskCompletedVsTaskFromResultVsReturnTests.cs b/async-csharp/TaskCompletedTaskFromResultVsReturnInCSharp/Tests/TaskCompletedVsTaskFromResultVsReturnTests.cs
index ff4bdfc0dc..75a325be8c 100644
--- a/async-csharp/TaskCompletedTaskFromResultVsReturnInCSharp/Tests/TaskCompletedVsTaskFromResultVsReturnTests.cs
+++ b/async-csharp/TaskCompletedTaskFromResultVsReturnInCSharp/Tests/TaskCompletedVsTaskFromResultVsReturnTests.cs
@@ -31,4 +31,24 @@ public async Task WhenCallingUseReturnAsync_ThenUseReturn()
Assert.Equal(20, result);
}
+
+ [Fact]
+ public void WhenCallingUseTaskFromResultAsync_ThenTaskIsAlreadyComplete()
+ {
+ var taskFromResultClass = new TaskFromResultHandler();
+
+ var result = taskFromResultClass.UseTaskFromResultAsync();
+
+ Assert.True(result.IsCompletedSuccessfully);
+ }
+
+ [Fact]
+ public void WhenCallingHandleAsync_ThenTaskIsAlreadyComplete()
+ {
+ INotificationHandler handler = new ConsoleNotificationHandler();
+
+ var result = handler.HandleAsync("Order 42 shipped.");
+
+ Assert.True(result.IsCompletedSuccessfully);
+ }
}
\ No newline at end of file