在其它语言中,一般费时任务都放在其它线程中,以避免阻塞主线程。而不管它是费CPU还是费IO。
总之,这都是HTML的错。你大可以把网络请求也放在worker中处理,但不幸的是,支持worker的浏览器并不多。
这个我试过,跟中止进程类似,用API: 1.取线程中止码:GetExitCodeThread((void *)thread->Handle,&ExitCode)2.强行中止: TerminateThread((void *)thread->Handle,ExitCode)如此而已 这是一个死循环线程:__fastcall MyThread::MyThread(bo...织梦dedecms生成栏目HTML缓慢的一个可能原因及解决方法:
1、找到dede\makehtml_list_action.php 文件
在dede\makehtml_list_action.php 的文件行 101 处
//$lv->CountRecord()
有这样一处注释掉的代码,这一个计算某个栏目类有多少分页的代码居然不运行,从而导致后面一行
if($lv->TypeLink->TypeInfos[‘ispart’]==0 &&$lv->TypeLink->TypeInfos[‘isdefault’]!=-1) $ntotalpage = $lv->TotalPage
else $ntotalpage = 1
导致这里面的 $ntotalpage 根本得不到值 (NULL),因为 $lv->TotalPage 是在$lv->CountRecord 函数里面赋值
,从而想到,取消此处注释,让栏目生成HTML 分批进行
2、尽量不要一次性生成过多
在生成后台我们可以安排日期进行生成或者安排id进行生成,这样比较合理,不然线程过多,或者时间过程,很容易导致卡死!