4

我有一个具有以下设计的程序

  • 几个单独的类,每个类都实现一种算法
  • 一个 Windows 窗体界面,用于提供输入以运行不同的算法和语音命令以执行完全相同的操作。
  • 每个算法都通过单击一个单独的按钮来运行
  • 每个算法都会引发一些事件(特定于算法)
  • 事件监听器依次输出
  • 表单上的标签并通过语音 API,使用扬声器说出结果

我面临的问题是,在调试时,如果一种算法出现问题,有时会自动启动其他算法。我希望能够在任何时间点知道哪些事件侦听器注册了某个事件(如果有的话)。我正在使用带有 C# 的 VS2008。

我还想知道我们是否使用 Timer 作为局部变量,并在每个类中为该计时器添加一个事件侦听器。有可能一个类的定时器触发了其他类的监听器。我是这个事件监听器的新手,不确定我是否遗漏了一些导致我提出这个问题的基本信息,或者它有一些问题。

4

1 回答 1

2

我建议您了解调试的基础知识,我认为这就是您现在所需要的。是调试基础知识的教程。熟悉 F10 和 F11 键。通过使用断点,您可以获得算法的执行顺序。

2. 一个类的定时器有可能触发其他类的监听器 这是一个例子。

MyClass myClass = new MyClass();
Timer timer1 = new Timer();
timer1.Tick += myClass.TimerCallback; // subscribe to other's class method
timer1.Interval = 1000;
timer1.Start();

public class MyClass
{
    public void TimerCallback(object sender, EventArgs eventArgs)
    {
        Console.WriteLine("Timer Called by: " + sender);
    }
}

如果您想获取回调列表订阅您的回调,请使用此答案,但如果您习惯调试,我认为您现在不需要它。

于 2013-05-08T15:33:29.787 回答