C# 事件注册过程中,是否会导致程序死掉

laorer laorer 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
class CA
{
public delegate void IqHandler(Object o);
public event IqHandler OnIq;
}

class CB
{
private void RegisterOnIq()
{
CA ca = new CA();
ca.OnIq += new CA.IqHandler(ca_OnIq);
}

void ca_OnIq(object o)
{
Console.WriteLine(" CB, onIq");
}
}

C# 事件注册过程中,是否会导致程序死掉

在 ca.OnIq += new CA.IqHandler(ca_OnIq);过程中,是否会导致程序死掉

CsToD 提到可能会是因为有非托管的对象导致GC提前回收了委托实例 new CA.IqHandler(ca_OnIq)这个对象

建议用 对象字段来保证其不会GC随机回收委托实例
我试了之后程序还是会随机的死掉

查了下 Microsoft.NET框架程序设计(11章) ,C#事件的注册过程是线程同步的,不清楚是不是和这个有关系,我不知如何来确认……
再找了下资料,又提到了消息循环,一点概念都没有……

大家看看,会是什么原因引起的?

可以看下这个帖子: http://topic.csdn.net/u/20091030/09/e0caa35b-0188-4d33-ad75-77650e7d810c.html
...全文

相关推荐

评论 8
收藏 已收藏
分享
返回顶部
laorer
C# 111,128 成员 642,536 内容