我正在使用Asterisk.NET库开发一个应用程序,我订阅了一个事件“NewStateEvent”来获取来自服务器的传入调用。 现在,我注意到NewState事件不会再次发生,直到最后一个NewStateEvent结束。我假设它在一个线程上工作;只有当最后一个线程完成时才会启动另一个线程...(我不得不在事件中调用表单来使用表单控件)... 有没有想法在我的NewState事件中允许一个线程的mumltiple实例?
答案 0 :(得分:0)
我假设你在事件处理程序中做了一些需要花费一些时间的事情?在这种情况下,除非您有权修改库本身,否则我建议您立即在事件处理程序中启动自己的线程,然后执行长期运行的任务。这样可以避免将其全部锁定,并且您可以接收其他事件。
有很多方法可以做到这一点。 BackgroundWorker
,使用ThreadPool
,使用异步方法或只是手动启动新线程。