C#回调函数
时间: 2023-07-11 14:24:35 浏览: 134
C#中的回调函数是一种将函数作为参数传递给另一个函数的技术。通常情况下,回调函数是一个委托(Delegate),它允许我们在程序执行期间将函数指针传递到另一个函数中,以便在需要时调用它。
在C#中,回调函数主要用于异步编程。当我们需要执行一个长时间运行的操作时,我们可以使用回调函数来通知我们操作是否已经完成。在这种情况下,我们可以定义一个委托类型的参数,在调用异步操作时将其传递给异步操作方法,当异步操作完成时,我们可以使用委托调用回调函数。
例如,下面是一个简单的C#回调函数示例:
```
using System;
namespace CallbackFunctionExample
{
class Program
{
static void Main(string[] args)
{
// 定义一个委托类型的参数
Action<string> callback = DisplayMessage;
// 调用异步操作方法,并将回调函数作为参数传递
LongRunningOperation(callback);
Console.WriteLine("异步操作已启动,正在执行中...");
Console.ReadLine();
}
static void LongRunningOperation(Action<string> callback)
{
// 模拟一个长时间运行的操作
System.Threading.Thread.Sleep(5000);
// 操作完成后调用回调函数
callback("操作已完成");
}
static void DisplayMessage(string message)
{
Console.WriteLine($"回调函数收到消息:{message}");
}
}
}
```
在上面的示例中,我们定义了一个名为`LongRunningOperation`的异步操作方法,并将一个`Action<string>`类型的回调函数参数传递给它。在异步操作方法中,我们模拟了一个长时间运行的操作,并在操作完成后调用了回调函数。在`Main`函数中,我们将`DisplayMessage`函数作为回调函数传递给异步操作方法,并在控制台中打印了回调函数收到的消息。
请注意,C#中的回调函数不仅限于使用委托类型作为参数,我们还可以使用其他类型的参数作为回调函数,例如接口、Lambda表达式等。
阅读全文