当前位置: 代码迷 >> VB Dotnet >> 可并行的动态链接库,该如何解决
  详细解决方案

可并行的动态链接库,该如何解决

热度:60   发布时间:2016-04-25 02:09:51.0
可并行的动态链接库
        我现在将多个设备的操作代码都封装到一个DLL中了。我的GUI中有两个线程,两个线程都会用到这个DLL中的代码,这样就必须用锁来防止资源冲突,但是在GUI中加锁后,发现整个软件的运行时间变的比原来长很多,发现就是其中有个函数运行的时间较长,线程1一直要等线程2中的这个函数运行完了释放锁后才开始运行。
         我想能否将锁写在DLL中的每个函数中,但是这样,GUI中的线程是否会冲突?我觉得极限情况下是会导致异常的啊?不知道别人都是如何编写可并行的动态链接库的哦?~
------解决思路----------------------
要想编写可并发的代码,无论是不是dll,都需要遵循如下准则:
不以并发的方式调用线程不安全的代码,使用必须独占的资源/设备以及使用任何非栈上的数据都要加锁。
  相关解决方案