重复订阅活动

时间:2016-11-08 14:02:52

标签: c# .net entity-framework devexpress

我来到了创建一个订阅事件的简单方法的地方。 我想知道如果我不止一次将它包括在内会发生什么。

示例:

//This method will be launched everytime a TabSelection Event fires...
public void SampleMethod()
{
 this.ctlSample.gridView.SelectionChanged += gridView_SelectionChanged;
}

可能存在Stackoverflow异常吗?比如,他是否重复将信息写入内存,或者运行时是否足够聪明以忽略它?

1 个答案:

答案 0 :(得分:0)

当您的活动被调用时,您的方法gridView_SelectionChanged将被多次执行。

这是您可以自己测试并发现非常简单的事情之一。

    public static event EventHandler TestEvent;

    public static void Main(string[] args)
    {
        TestEvent += Program_TestEvent;
        TestEvent += Program_TestEvent;
        TestEvent += Program_TestEvent;

        TestEvent(null, EventArgs.Empty);
     }

    private static void Program_TestEvent(object sender, EventArgs e)
    {
        Console.WriteLine("EVENT");
    }

    //output: 
    //EVENT
    //EVENT
    //EVENT