用c# 写一个异步回调
时间: 2024-03-21 13:40:54 浏览: 7
以下是一个使用 C# 编写异步回调的示例代码:
```csharp
public class MyClass
{
public async Task<int> MyMethodAsync(int x, int y)
{
// 等待异步操作完成
int result = await SomeAsyncOperation(x, y);
// 完成后执行回调
OnCompleted(result);
// 返回结果
return result;
}
// 定义回调方法
protected virtual void OnCompleted(int result)
{
Console.WriteLine($"异步操作已完成,结果为:{result}");
}
// 模拟一个异步操作
private async Task<int> SomeAsyncOperation(int x, int y)
{
// 模拟操作需要一定的时间
await Task.Delay(1000);
// 返回结果
return x + y;
}
}
```
使用方法:
```csharp
var myClass = new MyClass();
var result = await myClass.MyMethodAsync(1, 2);
```
当异步操作完成时,会自动调用回调方法 `OnCompleted()` 打印结果。