C# 怎么把函数回调改为Task异步执行
时间: 2024-09-20 10:11:49 浏览: 43
C#回调函数示例
5星 · 资源好评率100%
在C#中,如果你有一个需要等待结果的函数,并希望将其转换成异步形式,可以使用`Task.Run`、`Task.Factory.StartNew`,或者直接返回一个`Task`。例如,假设你有一个传统的同步回调函数:
```csharp
public void ExecuteSynchronousAction(Action action)
{
action();
}
```
你可以将其改写为异步版本,如使用`Task.Run`:
```csharp
public async Task ExecuteAsyncAction(Action action)
{
await Task.Run(() => action());
}
```
或者使用`async`/`await`关键字配合`Func<Task>`:
```csharp
public async Task ExecuteAsyncAction(Func<Task> actionTask)
{
await actionTask();
}
```
在这里,`action()` 被包装成了一个新的任务,当外部调用 `ExecuteAsyncAction` 时,会立即继续执行而不是阻塞。
阅读全文