Task C#后台任务
C# 创建一个没有返回值的任务
| using System; |
| using System.Threading; |
| using System.Threading.Tasks; |
| |
| class Program |
| { |
| static async Task Main(string[] args) |
| { |
| |
| Task task1 = Task.Run(() => |
| { |
| Console.WriteLine("Task 1 is running on a thread pool thread."); |
| Thread.Sleep(2000); |
| Console.WriteLine("Task 1 has completed."); |
| }); |
| |
| Task<int> task2 = Task.Run(() => |
| { |
| Console.WriteLine("Task 2 is performing some calculations..."); |
| Thread.Sleep(1500); |
| return 42; |
| }); |
| |
| System.Console.WriteLine("Main thread is waiting for Task 1 to complete."); |
| await Task.WhenAll(task1, task2); |
| |
| |
| int result = await task2; |
| Console.WriteLine($"The result from Task 2 is: {result}"); |
| } |
| } |
C# 创建一个可以取消的任务
| |
| class Program |
| { |
| static async Task Main(string[] args) |
| { |
| CancellationTokenSource cts = new CancellationTokenSource(); |
| try |
| { |
| Task task3 = Task.Run( |
| () => |
| { |
| while (true) |
| { |
| if (cts.Token.IsCancellationRequested) |
| { |
| Console.WriteLine("Cancellation requested, task 3 is stopping."); |
| break; |
| } |
| Console.WriteLine("Task 3 is working..."); |
| Thread.Sleep(500); |
| } |
| }, |
| cts.Token |
| ); |
| |
| |
| await Task.Delay(2000); |
| |
| cts.Cancel(); |
| |
| |
| await task3; |
| } |
| catch (OperationCanceledException ex) |
| { |
| Console.WriteLine($"Task was cancelled: {ex.Message}"); |
| } |
| } |
| } |
| |
| |
| |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 推荐几款开源且免费的 .NET MAUI 组件库
· 实操Deepseek接入个人知识库
· 易语言 —— 开山篇
· Trae初体验
2024-01-23 dotnet注册服务 secs4net secs
2024-01-23 dotnet 扩展Service方法 secs4net
2024-01-23 csharp 扩展方法
2022-01-23 tampermonkey 油猴脚本 博客园美化