ASP.NET webservice使用P / Invoke来调用非托管代码。多个Web服务请求之间是否存在内存问题?

时间:2011-07-01 01:11:20

标签: .net asp.net web-services pinvoke unmanaged

有一个ASP.NET Web服务,它在每次调用webservice时执行LoadLibrary()调用以加载非托管的.dll,然后在非托管的.dll中调用/调用许多函数。

ASP.NET用于为多个并发请求提供服务的线程模型是否意味着可能存在内存问题,导致非托管代码中分配的内存被后续Web服务请求踩到?

不同的Web服务请求是否在非托管代码中分配了自己的内存空间,或者它们是否在同一空间内发生冲突?

谢谢!

1 个答案:

答案 0 :(得分:1)

为p / invoke调用分配的内存取决于特定的调用,但总体上只要你正确清理非托管资源就不会有问题,因为垃圾收集器不会。从这个意义上说,ASP.NET应用程序就像任何其他多线程应用程序一样。