Using C# tasks

WBOY
Release: 2024-02-19 12:16:05
Original
1180 people have browsed it

Using C# tasks

C# Task usage requires specific code examples

Overview:
Task is a very commonly used type in C#, which represents an executable operation. Can be executed asynchronously and return results. Tasks play an important role in handling asynchronous operations, parallel processing, and improving application performance. This article will introduce the basic usage of Task and provide some specific code examples.

  1. Create and use a Task
    In C#, you can use the Task class to create and use an asynchronous task. The following is a sample code for creating and using a Task:
using System;
using System.Threading.Tasks;

class Program
{
    static void Main()
    {
        // 创建并启动一个Task
        Task task = Task.Run(() =>
        {
            //异步执行的代码逻辑
            Console.WriteLine("Task is executing...");
        });

        // 等待Task完成
        task.Wait();

        Console.WriteLine("Task is completed.");
    }
}
Copy after login

In the above example, we created a Task and specified the execution logic of the task through the Task.Run method. We then use the task.Wait method to wait for the task to complete and print a message when the task is completed.

  1. Task returns results
    Sometimes, we need a Task to return a result to the caller. The Task class provides a series of methods, such as Task, Task.Run, Task.FromResult, etc., to handle tasks with return values. The following is a sample code that returns task results:
using System;
using System.Threading.Tasks;

class Program
{
    static void Main()
    {
        // 创建并启动一个Task
        Task<int> task = Task.Run(() =>
        {
            //异步执行的代码逻辑
            return 42;
        });

        // 等待并获取任务结果
        int result = task.Result;

        Console.WriteLine("Task result: " + result);
    }
}
Copy after login

In the above example, we created a Task that returns an integer result, and obtained the result of the task after the task execution is completed.

  1. Multiple Tasks are executed in parallel
    Task can also be used to execute multiple tasks at the same time, thereby improving the performance of the application. This can be achieved by using the Task.WhenAll or Task.WhenAny methods. The following is a sample code for parallel execution of multiple tasks:
using System;
using System.Threading.Tasks;

class Program
{
    static void Main()
    {
        Task task1 = Task.Run(() =>
        {
            Console.WriteLine("Task 1 is executing...");
        });

        Task<int> task2 = Task.Run(() =>
        {
            Console.WriteLine("Task 2 is executing...");
            return 42;
        });

        Task task3 = Task.Run(() =>
        {
            Console.WriteLine("Task 3 is executing...");
        });

        // 等待所有任务完成
        Task.WhenAll(task1, task2, task3).Wait();

        Console.WriteLine("All tasks are completed.");
    }
}
Copy after login

In the above example, we created three tasks and waited for all tasks to be completed through the Task.WhenAll method.

Conclusion:
Through the above code examples, we understand the basic usage of Task in C#. The Task class provides a convenient way to handle asynchronous operations, parallel processing, and improve application performance. In actual projects, we can use Task to handle various asynchronous tasks as needed.

Note: The above example code is only used to demonstrate the basic usage of Task. In actual use, it may need to be adjusted and optimized according to specific needs.

The above is the detailed content of Using C# tasks. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template