我在形成这个问题时遇到了麻烦,所以我会尝试用几种方式来说明它,这样就不会重复通常关于静态方法的讨论。这可能更像是一个架构问题。
如果您在接受传入变量的静态类上有一个静态成员,如果操作使用率高且运行时间长,是否存在数据冲突/损坏的风险?IE:接受对象图类型的数据访问类以持久化到数据库中。
例如:
namespace MyApp.DAL.People
{
public static class Person
{
public static void Insert(Entities.People.Person p)
{
// ADO.net code, try catch etc, execute to db, call other private method
....
Helper(p);
}
private static void Helper(Entities.People.Person p)
{
// do work...
}
}
}
如果用户“A”开始Person.Insert(myNewPerson)
调用操作,该过程是否在用户“B”开始使用静态类和方法将他的“人对象”保存到数据库之前完全完成。
操作是串行的还是异步的,本质上是为了使用静态类而阻塞的?
如果应用程序(开发人员)试图在应用程序空间中使用多个线程,这是否只是一个问题?
除非您为应用程序显式启动另一个线程,否则一切是否都在单个线程上运行?
作为旁注,这是我在 SO 上的第一篇文章-特别感谢所有花时间发布问题/答案的人-感谢您的宝贵时间!