事件(Events):事件是一种同步IPC机制,用于通知其他进程某个事件已经发生。 请给出C#的通过事件进程间通信的代码示例
时间: 2024-09-29 20:10:19 浏览: 36
c#winform 进程之间进行通讯 API封装包含示例代码进程通讯.rar
5星 · 资源好评率100%
在C#中,事件是一种强大的机制,它允许类隐藏其内部状态的变化,并提供一种公开的方式让订阅者接收通知。下面是一个简单的事件处理和触发的例子:
```csharp
// 定义一个发布事件的类
public class EventPublisher
{
public event EventHandler<MyEventArgs> MyEvent;
// 触发事件
public void RaiseEvent(int value)
{
if (MyEvent != null)
{
MyEvent(this, new MyEventArgs(value));
}
}
}
// 定义事件数据类
public class MyEventArgs : EventArgs
{
public int Value { get; set; }
public MyEventArgs(int value)
{
Value = value;
}
}
// 订阅并处理事件的类
public class EventSubscriber
{
private EventPublisher publisher;
public EventSubscriber(EventPublisher publisher)
{
this.publisher = publisher;
publisher.MyEvent += OnMyEvent;
}
// 事件处理方法
private void OnMyEvent(object sender, MyEventArgs e)
{
Console.WriteLine($"Received event with value: {e.Value}");
}
}
// 使用示例
public static void Main(string[] args)
{
EventPublisher publisher = new EventPublisher();
EventSubscriber subscriber = new EventSubscriber(publisher);
// 触发事件
publisher.RaiseEvent(42);
}
```
在这个例子中,`EventPublisher` 发布 `MyEvent`,当需要通知订阅者时就调用 `RaiseEvent`。`EventSubscriber` 类订阅了这个事件并在 `OnMyEvent` 方法中响应。当我们在 `Main` 函数中调用 `publisher.RaiseEvent(42)` 时,会触发事件并打印出接收到的值。
阅读全文