Home >Backend Development >C++ >How Can I Efficiently Run Parallel Async Tasks in .NET 4.5?

How Can I Efficiently Run Parallel Async Tasks in .NET 4.5?

Linda Hamilton
Linda HamiltonOriginal
2025-01-13 12:09:43964browse

How Can I Efficiently Run Parallel Async Tasks in .NET 4.5?

Optimizing Parallel Asynchronous Operations in .NET 4.5

.NET 4.5 offers robust asynchronous programming capabilities for concurrent execution of multiple lengthy tasks. However, some initial implementations can appear overly complex and lack the elegance inherent in asynchronous methodologies. This improved example addresses these shortcomings.

Enhanced Code Structure

The following refined code provides a more efficient and streamlined approach:

<code class="language-csharp">async Task GoAsync()
{
    Console.WriteLine("Initiating Tasks");

    Task<int> task1 = SleepAsync(5000);
    Task<int> task2 = SleepAsync(3000);

    await Task.WhenAll(task1, task2);

    int totalSleepTime = task1.Result + task2.Result;

    Console.WriteLine($"Total sleep time: {totalSleepTime} ms");
}

private async Task<int> SleepAsync(int milliseconds)
{
    Console.WriteLine($"Sleeping for {milliseconds} ms");

    try
    {
        await Task.Delay(milliseconds);
        return milliseconds;
    }
    finally
    {
        Console.WriteLine($"Sleep for {milliseconds} ms COMPLETE");
    }
}</code>

Key Improvements:

  • GoAsync is now an asynchronous method (async Task), enabling the use of await to manage task completion.
  • SleepAsync is an asynchronous method returning Task<int>, reflecting the asynchronous nature of the operation.
  • Task.WhenAll efficiently awaits the completion of both tasks concurrently, eliminating the need for explicit .Result access and improving performance.

Functional Code:

This revised code executes both tasks concurrently, collecting results effectively. This method provides a cleaner, more concise, and efficient solution for parallel asynchronous task execution within .NET 4.5.

The above is the detailed content of How Can I Efficiently Run Parallel Async Tasks in .NET 4.5?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn