公共事件是否异步? 它们是在单独的线程上执行的吗?

公共事件是否异步? 它们是在单独的线程上执行的吗?

它们在触发事件的任何线程中执行。

这意味着,如果GUI线程引发了该事件,则该事件的事件处理程序将在GUI的线程中执行。 如果事件由某个后台线程引发,则事件处理程序在该后台线程中执行。 在处理程序执行的任何线程内,该方法都是同步执行的。

另外需要注意的是,如果表单中有事件处理程序,对于由后台工作的类引发的事件,当触发该事件时,将在后台线程中调用事件处理程序。 这意味着,您需要使用Control.Invoke或其他一些机制将数据正确传递到GUI线程,以便可以修改表单。

没有。

事件在引发它们的线程中执行。

不,它们不是异步的,它们在调用它们的同一个线程上执行。