📜  等待 C# (1)

📅  最后修改于: 2023-12-03 15:11:31.977000             🧑  作者: Mango

等待 C#

简介

C# 是一种通用、现代的编程语言,由 Microsoft 开发。它是 .NET Framework 的核心语言之一,支持面向对象编程、组件编程和一些功能性编程特性。

等待是在编程中常见的操作之一,C# 中也有相关的处理方式。在等待的过程中,CPU 可以去处理其他的任务或者保持闲置状态,以充分利用系统资源,提高程序的效率。

等待方法

C# 中等待的方法有多种,其中比较常见的有以下几种。

Thread.Sleep

可以让当前线程暂停指定的时间。

using System.Threading;

Thread.Sleep(1000); // 等待 1 秒
Task.Delay

可以让当前任务暂停指定的时间。

using System.Threading.Tasks;

await Task.Delay(1000); // 等待 1 秒
ManualResetEvent、AutoResetEvent

可以通过等待和设置信号的方式控制线程的执行。

using System.Threading;

var mre = new ManualResetEvent(false);
// 等待信号
mre.WaitOne();
// 设置信号
mre.Set();
SemaphoreSlim

可以限制同时访问某个资源的线程数量。

using System.Threading;

var sem = new SemaphoreSlim(2);
// 等待信号量
await sem.WaitAsync();
// 释放信号量
sem.Release();
异步等待

在异步编程中,等待也是很常见的操作,C# 中的 async/await 关键字可以为我们简化异步等待的处理方式。

Task.Delay
using System.Threading.Tasks;

await Task.Delay(1000); // 等待 1 秒
TaskCompletionSource
using System.Threading.Tasks;

var tcs = new TaskCompletionSource<bool>();
// 等待任务完成
await tcs.Task;
// 手动完成任务
tcs.SetResult(true);

以上是一些比较常见的等待方法和处理方式,根据具体的业务需求和场景可以选用不同的方法,以达到更好的效果。