使用Scheduler.Shutdown要小心

kbmMW 5.10.20的Scheduler增加了Shutdown方法,当你退出应用时,记得用这个方法来处理线程。实际上,这个方法就是等所有Scheduler发出的所有线程执完成,然后清理这些线程,再退出。可能你要问,为什么这样做呢?

原因是:如果退出应用时,在windows平台上,如果还有线程正在执行,就可以产生异常,并且很难跟踪;在android平台上,在这种情况下,当你重进app时,会卡一会并闪退,再次重进才正常。

今天遇到了问题,执行Shutdown一直等待,跟踪源代码,发现有一个线程一直在执行,造成Shutdown一直等。这是哪一个线程呢?

最后查明,原来是自己的调用方式不对造成的,在Scheduler.Run中,执行了Scheduler.Shutdown,而Shutdown一直等这个线程执行完。

经验:千万不要在Scheduler发起的线程中,调用Shutdown方法!

猜你喜欢

转载自www.cnblogs.com/kinglandsoft/p/12665220.html