使用参数时可以使用静态方法

本文关键字:静态方法 可以使 参数 | 更新日期: 2023-09-27 18:35:29

我知道静态成员可能会在 ASP.Net 或任何其他基于 .net 的系统中引起并发问题,其中多个用户将访问和使用相同的线程。

我的问题是,当我将上下文作为参数传递时,使用静态方法是否安全。例:

public class BL
{
    public static List<DocumentType> GetAllActiveDocumentTypesForMyDeparment(int CurrentDepartment)
    {
        return Data.DAL.GetAllActiveDocumentTypesForMyDeparment(CurrentDepartment).Where(s => s.IsActive)
            .OrderBy(s => s.DocumentTypeDisplayName).ToList();
    }
}

上述情况是否会导致并发问题?请注意,我的 DAL 也使用静态方法。

我知道有很多关于静态与实例的文章,我已经读过很多,但我发现真正理解某事的最好方法是编写代码并对其进行测试。谢谢

使用参数时可以使用静态方法

我知道静态成员可能会在 ASP.Net 或任何其他基于 .net 的系统中引起并发问题,其中多个用户将访问和使用相同的线程。

仅当它修改共享状态或执行某种同步时。

我的问题是,当我将上下文作为参数传递时,使用静态方法是否安全。

确定。这不像其他线程会看到该参数或有权访问它。当然,您必须在静态方法执行线程安全的工作,但仅此而已。

我建议你回到任何建议静态成员导致并发问题的来源,并真正尝试了解何时以及为什么会这样。这绝对不是您可以应用而无需进一步考虑的一揽子规则。

相关文章: