在当前事件完成之前,不会触发事件

本文关键字:事件 | 更新日期: 2023-09-27 18:36:19

我正在使用 Asterisk.NET 库开发一个应用程序,我订阅了一个事件"NewStateEvent"以获取来自服务器的传入呼叫。现在,我注意到 NewState 事件在最后一个 NewStateEvent 完成之前不会再次发生。我假设它在单个线程上工作;只有在最后一个线程完成时才会启动另一个线程......(我不得不调用表单才能在事件中使用表单控件)...有没有想法在我的 NewState 事件中允许线程的 mumltiple 实例?

在当前事件完成之前,不会触发事件

我假设您正在做一些在事件处理程序中花费一些时间的事情?在这种情况下,除非您有权修改库本身,否则我建议您立即在事件处理程序中启动您自己的线程并在其上执行长时间运行的任务。这样可以避免将其全部锁定,并且您将能够接收其他事件。

有很多方法可以做到这一点。 BackgroundWorker,使用ThreadPool,使用异步方法或简单地手动启动一个新线程。