gpt4 book ai didi

C# 事件处理

转载 作者:太空宇宙 更新时间:2023-11-03 14:32:27 25 4
gpt4 key购买 nike

我有一个提供自定义事件的类:

public delegate void ResultEvent(bool result);

public class Service : INotifyPropertyChanged
{
public event ResultEvent Result;
}

另外两个对象有这样的引用:

public partial class SomeRandomClass
{
private Service service;

public SomeRandomClass()
{
this.InitializeComponent();

service = new Service();
service.Result += new ResultEvent(service_Result);
}
}

问题是,只有最后一个创建“服务”新对象的对象才能识别事件是否被调度。如果我对先前生成的对象的“服务”执行某些操作,则必须分派(dispatch)事件,事件将在“服务”对象中引发,但不会调用处理程序。

有人知道我的问题是什么吗?

最佳答案

这听起来好像您在某处有一个静态引用,每次创建新实例时都可能被覆盖,但到目前为止您提供的代码中没有显示类似内容。您确实希望每个 Service 实例都有自己独立的处理程序集,对吗?

您能否发布一个简短但完整的程序来演示问题?基本上撕掉所有“真实”代码,直到您拥有的只是事件处理和触发。 (您可以使事件像计时器一样触发。)

关于C# 事件处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2289845/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com