📅  最后修改于: 2023-12-03 15:11:31.977000             🧑  作者: Mango
C# 是一种通用、现代的编程语言,由 Microsoft 开发。它是 .NET Framework 的核心语言之一,支持面向对象编程、组件编程和一些功能性编程特性。
等待是在编程中常见的操作之一,C# 中也有相关的处理方式。在等待的过程中,CPU 可以去处理其他的任务或者保持闲置状态,以充分利用系统资源,提高程序的效率。
C# 中等待的方法有多种,其中比较常见的有以下几种。
可以让当前线程暂停指定的时间。
using System.Threading;
Thread.Sleep(1000); // 等待 1 秒
可以让当前任务暂停指定的时间。
using System.Threading.Tasks;
await Task.Delay(1000); // 等待 1 秒
可以通过等待和设置信号的方式控制线程的执行。
using System.Threading;
var mre = new ManualResetEvent(false);
// 等待信号
mre.WaitOne();
// 设置信号
mre.Set();
可以限制同时访问某个资源的线程数量。
using System.Threading;
var sem = new SemaphoreSlim(2);
// 等待信号量
await sem.WaitAsync();
// 释放信号量
sem.Release();
在异步编程中,等待也是很常见的操作,C# 中的 async/await 关键字可以为我们简化异步等待的处理方式。
using System.Threading.Tasks;
await Task.Delay(1000); // 等待 1 秒
using System.Threading.Tasks;
var tcs = new TaskCompletionSource<bool>();
// 等待任务完成
await tcs.Task;
// 手动完成任务
tcs.SetResult(true);
以上是一些比较常见的等待方法和处理方式,根据具体的业务需求和场景可以选用不同的方法,以达到更好的效果。