资源的保护,用Metux  试试。

解决方案 »

  1.   

    统计完成线程的代码中加临界区等保护。
    如果在主线程中terminate其它线程的话没必要利用OnTerminate来计数。
      

  2.   

    在demos里有一个排序的多线程实例,也不是安全的,但好像没见过这种问题我有一个想法,能否用postmessage这个消息机制来为我们处理呢?
    自定义一个消息来进行统计,由于postmessage本身就可以放到消息队列中,而消息队列是安全的
    对于用临界区的操作我不太赞同,当用p,v操作来实现时,会不对临界资源访问,那不是有违我们的想法么?
      

  3.   

    估计是因为排序工作比较快吧,我的线程最大的问题是要用到TCP/IP连接,令线程变得很慢,尤其出现异常时。
      

  4.   

    如果你想绝对正确地统计的话不仿这样试试在线程结束时建立另一个统计线程B
    线程B对一临界资源进行p,v操作,如果不能访问则随机延时再访问,v操作后再结束b线程;不同线程建立的b线程是不一样的,通过延时和pv操作可以解决类似的问题
      

  5.   

    奇怪,我从资料看OnTerminate事件已经是安全的了,不会有冲突,为什么会有漏算的问题呢?