c#:当事件被调用时如何退出方法

本文关键字:何退出 退出 方法 事件 调用 | 更新日期: 2023-09-27 18:06:13

我有一个附加事件,如:

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() .

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

c#:当事件被调用时如何退出方法

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

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