Quantcast
Channel: Kaedei 的个人博客
Viewing all articles
Browse latest Browse all 103

解决AcDown卡在“正在启动”画面的问题

$
0
0
这篇文章教你怎样解决AcDown启动时,出现“正在启动”画面和Logo时时间过长,且内存占用不断升高的问题。

错误发生的原因:
AcDown使用自定义的XML文件来保存所有任务信息,包括正在进行的、发生错误的和已经结束的。默认情况下AcDown在每次正常退出程序时保存一次所有任务的状态至指定的xml文件,同时为了防止程序异常退出导致任务信息丢失,任务调度器还会每隔45秒再次保存一次。如果任务数量非常多,保存到文件所需要的时间可能会持续几秒钟之久。
当程序发生异常退出时,进程被强制结束,如果这时任务调度器正在保存文件,就会导致文件没有被完整写入磁盘。另一种情况是当任务调度器正在保存文件时,用户手动退出程序,进程结束时同时终止所有后台线程(每隔45秒保存文件的操作正是由后台定时器线程完成的),造成文件未完整写入。
接着,当下次AcDown启动时,由于文件被破坏就会发生读取错误,又因为读取(反序列化)措施是交由.NET Framework来完成(实现了ISerializable接口),AcDown没有办法检测到读取操作用时多久以及何时完成,所以也没办法终止读取操作并重建此文件。最终造成了XML解析陷入某种死循环,“正在启动”窗口无法完成初始化操作。

解决办法:
解决办法其实也很简单,删除任务XML文件即可。
方法是,Windows XP系统打开这个文件夹:
 C:\Documents and Settings\你的用户名\Application Data\Kaedei\AcDown
Windows Vista以后的系统打开这个文件夹:
 C:\Users\你的用户名\AppData\Roaming\Kaedei\AcDown
(也可以按Win+R,然后输入路径直接回车打开)

删除掉里面的Task.xml文件即可。



(唉呀以后也会修复这个问题啦,实现ISerializable太麻烦了)

 青春就应该这样绽放  游戏测试:三国时期谁是你最好的兄弟!!  你不得不信的星座秘密

Viewing all articles
Browse latest Browse all 103

Trending Articles