C# 延时编程完全指南:从基础到高级的7种实现方式

在C#编程中,延时操作是一个常见需求。无论是控制程序执行节奏、实现定时任务,还是处理异步操作,掌握不同的延时方式对于编写高效、响应式的应用程序至关重要。本文将深入探讨C#中实现延时的各种方法,帮助你选择最适合的解决方案。

1. Thread.Sleep() - 传统的同步延时

Thread.Sleep() 是最传统也是最直观的延时方法,它会阻塞当前线程指定的时间。

using System;
using System.Threading;

public class ThreadSleepExample
{
    public static void Main()
    {
        Console.WriteLine($"开始时间: {DateTime.Now}");
        
        // 延时2秒
        Thread.Sleep(2000);
        
        Console.WriteLine($"结束时间: {DateTime.Now}");
    }
}

优点:

  • 简单直接,易于理解
  • 适用于简单的控制台应用程序

缺点:

  • 阻塞当前线程,影响应用程序响应性
  • 在UI应用程序中会导致界面冻结
  • 浪费系统资源

2. Task.Delay() - 现代异步延时的首选

Task.Delay() 是.NET 4.5引入的异步延时方法,是现代C#开发的推荐选择。

using System;
using System.Threading.Tasks;

public class TaskDelayExample
{
    public static async Task Main()
    {
        Console.WriteLine($"开始时间: {DateTime.Now}");
        
        // 异步延时2秒
        await Task.Delay(2000);
        
        Console.WriteLine($"结束时间: {DateTime.Now}");
    }
    
    // 带取消令牌的版本
    public static async Task DelayWithCancellation()
    {
        var cts = new CancellationTokenSource();
        
        try
        {
            await Task.Delay(5000, cts.Token);
        }
        catch (OperationCanceledException)
        {
            Conso
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值