使.Net DLL对Web App消费具有线程安全性?

时间:2012-05-29 04:38:32

标签: asp.net .net thread-safety

我在VB.Net中编写了一个在运行IIS7的ASP.NET Web应用程序中使用的类。我使用.NET Framework 4.0。该类对联机执行REST请求,并检索包含强类型数据的XML响应。

此类还使用SQL Server数据库执行缓存。该类被编译为.DLL并由Web应用程序引用。它工作得很好,现在我需要知道如何使类线程安全。

我没有使代码“线程安全”的经验。我不知道从哪里开始确定它是否是线程安全的。我假设,因为我在开发过程中没有注意到这一点,它不是线程安全的,因为Web应用程序将被许多用户同时使用,必须要注意它。

有人能指出我如何测试线程安全吗?网上是否有任何资源可以给我一些想法?是否有任何经验法则可以让我知道我的主要问题在哪里?

1 个答案:

答案 0 :(得分:1)

您可以注意的最简单的事情是使用“静态”(C#)或“共享”(VB.NET)变量。如果可以在应用程序的整个生命周期中修改这些变量,您可能会遇到线程问题,这些问题通常会导致“随机查看”问题。

我还会担心你是如何在数据库中进行缓存的,因为多个.NET线程命中SQL(对于缓存)可能会导致问题,这取决于它的设计方式。

最重要的是,如果你想确定没有问题,你可能需要了解更多关于线程的信息。可能是我从简单到非常复杂的C#主题阅读的最好的书是C# 4.0 In a Nutshell我会看一下这本书,特别是线程章节。 (认真阅读整篇文章)如果你通过阅读并对所提到的概念有一个很好的理解,你应该没事。