问题一
InitializeCriticalSectionAndSpinCount(MyCs,400);
这个API 函数 参数二 在多核的CPU机器下 怎么设置比较好。(设置范围是多大比较好 0-4000?)
问题二
delphi 下 线程.Terminate 和线程.DoTerminate 有什么不同?
希望详细一些说明
线程在 执行线程.Terminate之后有时候无法正常重新执行是什么原因?是线程代码问题么?
如何定位?
问题三
如何检查delphi编写的程序涉及到多线程死锁的问题和CPU占用的问题.
比如什么工具什么的.
希望 好心人关注下 ,谢谢 .多线程Delphi多核多线程死锁定位

解决方案 »

  1.   

    InitializeCriticalSectionAndSpinCount 第二个参数没啥研究,俺一般就用MSDN给出的参考值4000,但是这个4000不是上限,可以自己花点时间测试一个合适的值。
    下面所说的线程是指TThread类的实例。TThread类是个抽象类,必须继承它并实现抽象方法Execute。Terminate是将线程终止,DoTerminate是啥,没这个玩意吧。如果是说OnTerminate,这是个事件属性,是当线程终止后(不管是非正常终止还是线程执行完毕自动终止)的执行的回调函数。线程Terminate后就没了,如何重新执行。
    如果你是想要挂起线程,就用suspend,恢复线程执行用resume;如果想要强大的调试维护功能,google Eurekalog 这个软件。
      

  2.   

    感谢楼上回复
    InitializeCriticalSectionAndSpinCount 第二个参数 可以自己花点时间测试一个合适的值
    OnTerminate Terminate的区别我明白了
     Eurekalog 这个软件这个软件不错,但是跟我要求 还是有些差距
    给分吧
    不过还有几个多线程问题叫人纠结啊。