0

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

4

1 回答 1

0

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

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

于 2013-10-20T15:06:18.720 回答