在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
方法将被执行,输出"工作完成!"。