Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ria服务服务器端数据结构:线程之间是否共享_C#_Asp.net_Silverlight_Wcf Ria Services_Ria - Fatal编程技术网

C# ria服务服务器端数据结构:线程之间是否共享

C# ria服务服务器端数据结构:线程之间是否共享,c#,asp.net,silverlight,wcf-ria-services,ria,C#,Asp.net,Silverlight,Wcf Ria Services,Ria,假设我有ria服务DomainDataService类: public partial class SomeService : LinqToEntitiesDomainService<SomeEntities> { List<string> list = new List<string>(); public IQueryable<SomeEntity> GetSomeEntity() { list.Add("t

假设我有ria服务DomainDataService类:

public partial class SomeService : LinqToEntitiesDomainService<SomeEntities>
{
    List<string> list = new List<string>();
    public IQueryable<SomeEntity> GetSomeEntity()
    {
       list.Add("test");
       ...
    }
}
公共部分类SomeService:LinqToEntitiesDomainService
{
列表=新列表();
公共IQueryable GetSomeEntity()
{
列表。添加(“测试”);
...
}
}
有一个全局变量
列表
GetSomeEntity
方法显然可以同时调用。问题:并行
GetSomeEntity
调用之间是否共享
list
,即是否必须使用锁来保护它?
我想这同样适用于所有asp.net服务器端风格,例如web服务(是否?)。

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

[EnableClientAccess()]
[ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Multiple)]
public partial class SomeService : LinqToEntitiesDomainService<SomeEntities>
{
[EnableClientAccess()]
[ServiceBehavior(ConcurrencyMode=ConcurrencyMode.Multiple)]
公共部分类SomeService:LinqToEntitiesDomainService
{
我相信默认选项是
ConcurrencyMode.Single

From:“将ConcurrencyMode设置为Single会指示系统将服务实例限制为一次执行一个线程,从而使您不必处理线程问题”

因此,为了回答您的问题,全局
列表
不会在您的服务调用之间共享(除非您的调用是静态的)