0

我有一个附加事件,例如:

mySmppClient.evDeliver_Sm += new SmppClient.Deliver_SmEventHandler(mySmppClient_evDeliver_Sm);

mySmppClient_evDeliver_Sm(){
// have some code here.
}

和另一种方法,如:check_outbox();

应用程序总是检查check_outbox()方法。

现在,如果代码调试指针进入 check_outbox()方法并同时触发事件,则应用程序将挂起。因为它开始为mySmppClient_evDeliver_Sm().

我的问题是:如果事件触发,则 check_outbox 完成它的当前任务,然后它将调用mySmppClient_evDeliver_Sm().

可能吗?或者有任何其他方法吗?或者我可以同步场景吗?

4

2 回答 2

0

创建一个在线程之间共享的布尔变量(例如名为 KeepRunning)。在您的方法中循环,定期检查布尔变量,如果它为假则退出该方法。在控制线程中,当您希望方法退出时,将布尔变量设置为 false。

于 2013-03-27T17:08:46.653 回答
-1

你也许应该mySmppClient_evDeliver_Sm()在一个新线程中运行,你可以随时中止它。

于 2013-03-27T16:55:52.707 回答