c# 多个程序间回调函数 示例
时间: 2024-12-28 19:36:04 浏览: 9
在 C# 中,回调函数是一种常见的设计模式,它允许一个对象(称为委托者)将执行某些特定任务的任务委派给另一个对象(被称为接收者)。这种方式常用于异步操作、事件处理或处理函数结果。下面是一个简单的示例:
```csharp
using System;
using System.Threading.Tasks;
// 定义一个委托类型的接口
public delegate void MyCallback(string result);
class Caller {
public event MyCallback OnCompletion; // 定义事件
public async Task CallAPIAsync(string data) {
Console.WriteLine("Calling API...");
// 模拟网络请求
await Task.Delay(2000);
var response = "API Response: " + data;
OnCompletion?.Invoke(response); // 触发回调
}
}
class CallbackReceiver {
public void OnCallback(string result) {
Console.WriteLine($"Callback received: {result}");
}
}
class Program {
static void Main() {
// 创建委托者实例并设置回调
Caller caller = new Caller();
caller.OnCompletion += CallbackReceiver.Instance.OnCallback;
// 发起异步调用
caller.CallAPIAsync("Data to send").Wait();
Console.ReadLine(); // 等待主线程结束
}
}
```
在这个例子中,`Caller` 类有一个 `OnCompletion` 事件,当 `CallAPIAsync` 方法完成时会触发这个事件。`CallbackReceiver` 类有一个实现了 `MyCallback` 接口的方法 `OnCallback`,作为事件处理程序注册。当 `CallAPIAsync` 执行完毕,会调用 `OnCallback` 并传递返回的结果。
阅读全文