这个问题以前有人问过,但没有答案。 我同病相怜,想再碰碰运气。 似乎是相当根本的。
比如说,我有两个事件,一个事件是“按下某个键”,另一个事件是“数据到达”。 我正在处理“data Arrived”事件在它的事件处理程序中处理数据,我想做一些特殊的事情时,“特定的键按下”事件被激发。
处理这一点的一种方法是拥有某种标志,该标志设置在“按下的特定键”事件处理程序中。 并且在“Data Arrived”事件处理程序中选中该标志。
我想知道,当必须激发两个或更多事件才能发生一个动作时,是否有一种更优雅或更标准的方式来处理这种情况。
谢谢!!!
如果您使用的是winforms,请务必注意表单事件(如单击事件)从不相互中断。 现在它取决于您的数据处理是否发生在同一个线程(UI线程)中。 例如,如果您在另一个Click事件中开始处理数据,而没有启动另一个任务或使用async-await,则DataArrived
事件也将在UI线程中发生。 在这种情况下,这些事件处理程序将严格按顺序调用。
否则请参阅:如何引发跨线程事件