最近在做一个项目除主线程外同时有另外4个线程在运行,每个线程中都不同程度的用到StrUtils,System中的LeftStr,RightStr,FormatDateTime...等很多常用函数,我是通过临界区进行线程同步的,不知道这些函数是否线程安全的,如果不安全,难道每用到一个都要为其建立临界区?太恐怖了!!!请各位大哥指点该如何处理?怎样确定delphi函数大全中哪些函数是线程安全的?谢谢!!!

解决方案 »

  1.   

    僵哥,怎么确定这些函数有没有去写一个共享的对象/变量?如leftstr和length,去代码里查吗?如果有一些是WINDOWS的函数,无法查代码的时候怎么办?谢谢!
      

  2.   

    难道你不可以进行自己的分析吗?
    LeftStr就是将你传进去的一个字符串,返回一个新的左子串给你,肯定不会写共享变量不是?Length也一样。
      

  3.   

    如果不同线程要使用不同的日期时间格式,应该使用线程安全版本的 FormatDateTime (多一个参数)