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()
.
是可能的吗?或者有其他方法吗?或者我可以同步场景吗?
创建一个布尔变量(例如名为KeepRunning),在线程之间共享。在方法内部循环,定期检查布尔变量,如果为false则退出方法。在控制线程中,当您想要退出该方法时,将布尔变量设置为false。
你应该在一个新线程中运行mySmppClient_evDeliver_Sm()
,你可以随时中止它。