gpt4 book ai didi

c# - ria 服务服务器端数据结构 : is it shared between threads

转载 作者:行者123 更新时间:2023-11-30 17:03:43 25 4
gpt4 key购买 nike

假设我有 ria 服务 DomainDataService 类:

public partial class SomeService : LinqToEntitiesDomainService<SomeEntities>
{
List<string> list = new List<string>();
public IQueryable<SomeEntity> GetSomeEntity()
{
list.Add("test");
...
}
}

有一个全局变量listGetSomeEntity 方法显然可以同时调用。问题:list 是否在并行 GetSomeEntity 调用之间共享,即我是否必须使用锁来保护它?我想这同样适用于所有 asp.net 服务器端风格,例如 Web 服务(或不是?)。

最佳答案

这应该取决于服务的上下文模式。您可以通过属性控制它:

[EnableClientAccess()]
[ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Multiple)]
public partial class SomeService : LinqToEntitiesDomainService<SomeEntities>
{

我相信默认选项是 ConcurrencyMode.Single

来自 MSDN : “将 ConcurrencyMode 设置为 Single 指示系统将服务实例限制为一次执行一个线程,这使您无需处理线程问题”

因此,为了回答您的问题,全局 list 不会在对您的服务的调用之间共享(除非您 make is static)。

关于c# - ria 服务服务器端数据结构 : is it shared between threads,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18318209/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com