拷贝dll这想法。还不如再建个静态变量呢。你自己得先想清楚,为什么要用多个线程访问这同一个变量?如果冲突,你期望怎么处理?

解决方案 »

  1.   

    这个调用的DLL是客户写的DLL,里面的静态变量数量和值都是客户自定义的,这个只能这种方式了现在,
    看大家有没有好的解决方案啊?
      

  2.   

    DLL的结果是变不了的!
    能用EMIT动态产生DLL解决吗?
      

  3.   

    lock是.net clr自身的实现,如系统的同步互斥没有半点联系所以,lock很快
    另外你的代码。。List这种东西随用随new,还用得找static变量既然你这么要求性能就更不要使用static变量,static变量慢很多的
      

  4.   

    呵呵,谢谢,LOCK肯定不行,他不是多线程对静态变量累加操作,而是单独都从0单独处理
    这是用在参数优化穷举里面,需要多核并行测试各个参数组的效果,每个任务初始情况是基本一致的,只是设置DLL里面的变量不同罢了。
      

  5.   

    那就分开 AppDomain 处理就可以了。你可以把 AppDomain 看成一个进程。
      

  6.   

    谢谢,不过APPDOMAIN的效率很低,测试发现APPDOMAIN是直接调用时间的3倍,那就失去多核加快速度的意义了!