关于多线程的例子,老是类似死机,请大师指导! ( 积分: 200 )

  • 主题发起人 主题发起人 hotboy
  • 开始时间 开始时间
appfirst肯定可以满足要求了
 
to&nbsp;appfirst&nbsp;&amp;&nbsp;zwz_good&nbsp;:appfirst的方法确实可以满足要求。<br>我觉得appfirst真正起作用的是Application.ProcessMessages;&nbsp;这句<br>妙,妙,妙!<br>我很快就要发分了。各位大师还能再挖掘一下吗?<br>终于我对线程比以前清楚多了。
 
这个线程和不用线程一样。<br>在主窗体里的循环里加上Application.ProcessMessages;也不会死机。<br>可以说这个线程意义不大。
 
。。特别关注此问题,顶。。
 
少用&nbsp;Sleep(1),&nbsp;非常不准<br>Sleep(10)&nbsp;时,&nbsp;差不多是比较准的.嘿嘿<br>其实主要是&nbsp;一个&nbsp;Synchronize()&nbsp;函数的应用
 
最可恶的是D7中这个函数在dll中不能用
 
我废话一下。<br>按这个方式就算开一个线程&nbsp;,CPU就100%。你点击button1&nbsp;后随便移动一下窗体就进入假死状态。根本不用点第二个按键。<br><br>sleep绝对可能改善这个状态。
 
使用线程主要注意同步和线程的执行间隔<br>同步问题涉及到显示及对数据库的操作<br>执行间隔涉及到Cpu的功耗<br>若没有设置间隔时间那Cpu的功耗将回是100%,其实很多时候是空耗的.所以在线程执行间隔时要Sleep一定的时长,这个时长不能太长,也不能太短<br>太长的话影响线程的响应周期,太短的话不起作用.本人一般喜欢sleep时长为100-500毫秒
 
to:happycyp<br>当线程中处理数据的载荷变化很大同时又必须通知vcl时,这样写还是有意义的,因为你并不知道线程代码的具体处理时间,如果在某一段时间里它处理单个任务很快就可能频繁调用同步过程从而阻塞了主线程,这个时候那句就起了作用。而如果处理的时间较长,那有和没有那句就无关紧要了。
 
后退
顶部