C# EventHandler方法永远循环 问题

C# EventHandler方法永远循环 问题,c#,events,event-handling,C#,Events,Event Handling,我正在使用Streamcoders来创建一个实时流应用程序。我正在尝试一种方法来处理当他在流媒体时客户端的互联网断开连接的情况。我希望它点击一个方法并显示一个消息框,让用户重新启动流 相反,该方法不断受到攻击,因此我在屏幕上收到一个垃圾邮件消息框 代码 因此StreamCoder有一个错误事件处理程序,这就是我订阅的: public RtspManager manager = new RtspManager(); public LiveMainViewModel() { manage

我正在使用Streamcoders来创建一个实时流应用程序。我正在尝试一种方法来处理当他在流媒体时客户端的互联网断开连接的情况。我希望它点击一个方法并显示一个消息框,让用户重新启动流

相反,该方法不断受到攻击,因此我在屏幕上收到一个垃圾邮件消息框

代码
因此StreamCoder有一个错误事件处理程序,这就是我订阅的:

public RtspManager manager = new RtspManager();

public LiveMainViewModel()
{
    manager.OnError += new StreamCoders.Network.OnError(OnErrorStream);
}
当互联网断开连接时,这种方法会不断循环:

private void OnErrorStream(object sender, SocketError error)
{
    if (MessageBox.Show("An error has occured during your live stream. Please check your Internet and click 'OK' to restart.","Error",MessageBoxButton.OKCancel,MessageBoxImage.Error) == MessageBoxResult.OK)
    {
        StopStreamSettings();
        videoStreamTimer.Stop();

        manager = new RtspManager();

        StreamSettings();

        ExpectedBitrate = BitrateConversion(config.Bitrate);
        videoStreamTimer.Start();
    }
}

我希望方法被点击并显示消息框,等待用户修复错误(重新连接internet),然后单击“确定”并运行代码。

在显示对话框之前,必须调用停止方法。如果您不这样做,则当对话框显示且事件持续触发时,它不会停止,从而添加更多对话框。@HansPassant当您说“停止”方法时,我在哪里可以找到它?我是在方法的开头还是结尾调用stop?