我有一个可以一次由多个进程使用的程序集.如果我使用的是静态类,那么多个进程是否都使用该类的相同"实例"?
由于这些进程是分开的,它们是否会在不同的应用程序域下运行,因此静态"实例"是否分开?
这里的细节中的布丁是一个自定义BizTalk适配器正在使用该程序集,我将其设置为以并行批处理方式处理消息.这就是我所说的"多个过程".
每个应用程序域都存在一次静态类.在您的情况下,它将取决于适配器是否在同一应用程序域中使用多个线程(因此共享静态类的单个实例)或使用多个进程(因此具有静态类的单独实例).
多个线程将共享一个实例.因此,静态类可以方便地在线程之间传递状态,但是您需要非常小心,不要引入竞争条件(Monitor
或lock
您的属性).
但是,多个进程应位于单独的AppDomain中,因此每个进程都有自己的实例.
"我有一个可以一次被多个进程使用的程序集.如果我使用静态类,那么多个进程是否都使用该类的相同"实例"?"
不,他们都有单独的实例.
"由于这些进程是分开的,它们是否会在不同的应用程序域下运行,因此将静态"实例"分开?"
是.