流量:
create aTimer
find Main()
run SetTimer
init aTimer to 2000 milliseconds
set elapsed event to OnTimerEvent
set aTimer to auto reset
set aTimer enabled = true (Start the timer counting)
console write: Press enter to quit.
console write: App started at.
Wait for console input Return key. -This "pauses" the app.
stop aTimer
dispose aTimer
console write: Terminating
“+=”做什么?
向事件堆栈添加方法调用。
它是否附加了在事件发生时调用的方法?
是的,从技术上讲,将其添加到事件发生时要调用的方法列表中。
这是在与事件相同的线程中生成的吗
对
并且可以用这种方式调用多个方法(比如执行appeased+=ArbitrarySecondMethod)
是的,你可以说:经过+=第一件事;经过的+=第二件事;等
或者这是否覆盖了默认情况下连接到“已用”的某个响应/方法?
不,是添加剂。
默认的反应是什么?
什么都没有,比如一个按钮没有被指定。
在“OnTimedEvent”中,“source”和经过的事件实际上是如何传递给它的?
与任何委托一样,触发它的对象将作为“发送方”与事件使用的任何eventargs类的新实例一起发送。当您使用+=分配方法时,它将进行检查,以确保方法签名与该模式匹配(对象,
某种事件参数
)
我不知道“e.SignalTime”是如何通过编译阶段的。
因为它是ElapEddEventArgs类的一部分。请注意前面的。它不是一个默认的EventArgs类,而是从中继承的,包含更多内容。当计时器触发事件时,会填充额外的内容。
“OnTimedEvent”怎么知道计时器对象存在?
其实不是。它只知道它希望得到两个对象
事情
还有一个ElapsedEventArgs
事情
.
另外,通过将参数传递给“OnTimedEvent”,这(Object x,Args y)是这种情况下使用的标准格式吗
是的,你会发现大部分,如果不是全部。Net事件处理程序期望这种签名。总是先是对象发送者,然后是某种EventArg对象。该事件参数对象将根据其订阅的事件而更改。MSDN库应该让您看到所需的内容。
,我将查找哪些内容以了解有关如何使用这些类型的“附加”方法的更多信息(在一般情况下)
这些都是简单的事件方法,所以任何讨论都可以。Net事件将对此进行讨论。有关更具体的信息,请参见:
MS Docs Events
MS Docs Event Patters
MS Docs Events Guide