C# 事件注册过程中,是否会导致程序死掉
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
...全文
相关推荐
C# 事件中心,一个简单的事件注册调用管理功能
在这个简单的事件注册调用管理功能中,我们可以看到如何在C#中有效地实现这一模式。
多次注册事件会导致一个事件被触发多次的解决方法
在JavaScript编程中,事件处理是页面交互的核心部分。然而,如果不加控制地多次注册同一个事件处理器,可能会导致该事件被触发多次,这不仅消耗资源,还可能导致预期外的行为。
c#注册客户端事件示例
同样,它检查控件是否非空,然后添加一个 `onpaste` 事件处理程序,该处理程序返回 `false`,从而阻止默认的粘贴行为。
C#软件注册机
**模拟注册过程**:在理解了算法后,C#程序员可以编写代码来模拟这个过程,生成一个能通过软件验证的注册码。这可能包括解密软件的原始机器码,然后应用相同的加密和哈希过程,生成匹配的注册码。5.
.NET/C#如何使用反射注册事件详解
在C#中,事件是.NET中用于实现发布-订阅模式的一种机制,它允许对象在发生某种情况时通知订阅者。事件的声明和注册通常在编译时完成,但在某些情况下,可能需要在运行时动态地注册事件。


