是这样的,我的一个计算电量的程序,由于计算的数据量比较大,在计算的时候,对内存的释放很好,为了对CPU进行释放,我每处理一段数据就SELLP(2000),程序开始的时候,对CPU的释放很正常,但是随着程序的不断运行,CPU获得释放的机会越来越少了,最后会导致系统死机,请问怎么样才可以解决这个问题。

解决方案 »

  1.   

    同意 定期Application.ProcessMessages
      

  2.   

    用多线程做啊
    Microsoft OLE DB Provider for SQL Server 错误 '80040e31' 超时已过期 /Expert/reply.asp,行105
      

  3.   

    Application.ProcessMessages是让应用程序处理消息循环,没有起到释放CPU的功能
    想让CPU轻松一些,应该降低运行的优先级。所以你要不降低进程的优先级(默认为15),要不把计算做到线程中,但线程优先级是相对的,是进程优先级进行的相对调整。因此降低进程的优先级比较显著。要降低进程的优先级需要再写一个程序(自己控制我不会,也许没有),用CreateProcess创建你的程序的进程,在参数dwCreationFlags中调整优先级,具体你查帮助吧,在Windows SDK中只要进程的优先级低了,就不会跟其他进程抢CPU了