using System;
using System.Threading;
class Program
{
delegate void MyDelegate(string message);
static void Main()
{
// 创建一个委托实例,指向WriteMessage方法
MyDelegate myDelegate = new MyDelegate(WriteMessage);
// 使用Invoke方法直接调用委托
myDelegate.Invoke("这是使用Invoke方法调用的委托");
// 模拟异步操作
Thread thread = new Thread(new ThreadStart(() =>
{
// 在另一个线程中调用委托
myDelegate.Invoke("这是在另一个线程中使用Invoke方法调用的委托");
}));
thread.Start();
thread.Join(); // 等待线程完成
Console.ReadLine();
}
static void WriteMessage(string message)
{
Console.WriteLine(message);
}
}
委托声明:delegate void MyDelegate(string message); 定义了一个名为 MyDelegate 的委托类型,它接受一个字符串参数并返回 void。
创建委托实例:MyDelegate myDelegate = new MyDelegate(WriteMessage); 创建了一个 MyDelegate 类型的委托实例,并将其绑定到 WriteMessage 方法。
Invoke 方法:myDelegate.Invoke("这是使用Invoke方法调用的委托"); 使用 Invoke 方法直接调用委托,传递一个字符串参数给 WriteMessage 方法。
异步调用:通过创建一个新的线程并在该线程中调用委托的 Invoke 方法,演示了如何在不同线程中使用 Invoke 方法。
等待线程完成:thread.Join(); 用于等待新线程完成其任务,确保主线程不会提前结束。
WriteMessage 方法:这是一个简单的输出方法,接收一个字符串参数并打印到控制台。
上一篇:.net和c#
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站