我在使用 DLLImport 时遇到了一些并发问题,我有一个 Dll 提供了一些我需要通过网络发送的报告,所以我有这个:
[DllImport("Rep.dll", EntryPoint = "PrintRep", CallingConvention = CallingConvention.StdCall,
CharSet = CharSet.Ansi)]
private static extern string PrintRep(several params...);
在 Dll 端有很多变量和实例,然后返回报告的路径。
我现在拥有的代码对 PrintRep 的调用有一个锁定,它可以工作,但显然会使挂起的请求等待,有没有办法在没有锁定的情况下工作?因为如果我取出锁,我会收到几个“尝试在受保护的内存上写入”错误,并且 Dll 最终会挂起。