在C#中,回调是一种常见的异步编程模式。回调方法是一个作为参数传递给另一个方法的方法。当调用外部方法时,这个参数方法(回调方法)将在适当的时机被调用。这使得您可以在异步操作完成时执行特定的代码。
以下是一个简单的C#回调示例:
using System;
// 定义一个回调方法
public delegate void MyCallback(string message);
// 一个使用回调方法的类
public class MyClass
{
public void DoWork(MyCallback callback)
{
// 模拟异步操作
System.Threading.Thread.Sleep(2000);
// 异步操作完成后,调用回调方法
callback("工作完成!");
}
}
public class Program
{
public static void Main()
{
MyClass myClass = new MyClass();
// 将回调方法作为参数传递给DoWork方法
myClass.DoWork(new MyCallback(OnWorkCompleted));
// 主线程继续执行其他任务...
Console.WriteLine("等待回调...");
}
// 回调方法实现
public static void OnWorkCompleted(string message)
{
Console.WriteLine(message);
}
}
在这个示例中,我们定义了一个名为MyCallback的委托,它表示回调方法。MyClass类中的DoWork方法接受一个MyCallback类型的参数。在DoWork方法中,我们模拟了一个异步操作(使用Thread.Sleep),然后在操作完成后调用回调方法。
在Main方法中,我们创建了一个MyClass实例,并将OnWorkCompleted方法作为回调方法传递给DoWork方法。当DoWork方法完成异步操作并调用回调方法时,OnWorkCompleted方法将被执行,输出"工作完成!"。