C# 简易的回调函数示例
时间: 2024-08-14 12:01:11 浏览: 63
在 C# 中,回调函数是一种设计模式,它允许你在某个操作完成或满足特定条件后,调用预先指定的函数。下面是一个简单的回调函数示例,我们创建一个委托类型 `ProcessCompleted` 和一个方法 `StartProcess`,后者接受一个 `Action<int>` 类型的参数:
```csharp
using System;
// 定义委托类型,代表处理完成操作的方法
public delegate void ProcessCompleted(int result);
// 定义需要执行过程并支持回调的方法
public static class ProcessManager
{
public static void StartProcess(ProcessCompleted callback)
{
// 模拟耗时操作,这里只是简单打印等待
Console.WriteLine("Starting process...");
Thread.Sleep(2000); // 操作实际时间可能会更长
// 进行完操作后,通过回调通知结果
int processedValue = 42;
callback(processedValue);
Console.WriteLine($"Process completed with result: {processedValue}");
}
}
// 示例用法
public class Program
{
public static void Main()
{
// 创建并注册一个将接收到处理结果的回调函数
ProcessCompleted completionHandler = Result => Console.WriteLine($"Callback received: {Result}");
// 调用 ProcessManager.StartProcess 并传入回调
ProcessManager.StartProcess(completionHandler);
// 这里 main 线程不会阻塞,程序会继续执行到这行结束
Console.WriteLine("Main thread continues...");
}
}
```
在这个例子中,当 `StartProcess` 方法执行完毕后,它会调用传递进来的 `completionHandler` 回调函数,将计算得到的结果作为参数传递。
阅读全文