WCF分布式3-InstanceContext和ConcurrencyMode
来源:互联网 发布:网络自制综艺节目 编辑:程序博客网 时间:2024/06/12 23:36
WCF中,如果将实现契约(接口)的服务配置默认为
InstanceContextMode = InstanceContextMode.Single,
也就是说这个服务对象,客户端调用这个对象的接口时,不管调用服务对象内的接口几次,
服务对象仅仅创建一次。如果多个客户端都调用这个服务对象,因为它已经创建出来了,
所以Single模式下,它也不再一一创建了。仅有一个!
在InstanceContextMode = InstanceContextMode.Single下,如果再将ConcurrencyMode设置为
Single,那么是单线程运行模式,当前运行的线程会阻塞排队的待处理消息的线程;如果将
ConcurrencyMode设置为Multiply,处于多线程模式下,虽然不再阻塞,但是需要注意发生的
并发,需要对并发进行相关处理,添加互斥锁等。
但是,
如果将InstanceContextMode 特性(标签)定义为 PreCall时,服务对象将创建几次呢? 答案,客户端代码调用接口几次,服务对象就会要创建几次。
如下面的服务代码:
//PerCall:客户端每次调用这个服务的一个接口时,就会立即创建一个服务对象Service1,调用接口几次,就会创建Service1几次。
[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)]
public class Service1 : IService1
{
private List<int> source = new List<int>();
public string GetData(int value)
{
//lock (source)
{
for (int i = value; i < 5; i++)
{
Thread.Sleep(1000);
source.Add(i);
}
}
return "OK";
}
public List<int> GetDataSource()
{
return source;
}
}
客户端调用:
GetData接口时,Service1对象创建第一次,source 被初始化一次。
GetDataSource接口时,Service1对象创建第二次,source再被初始化一次。
- WCF分布式3-InstanceContext和ConcurrencyMode
- WCF - ConcurrencyMode
- WCF:并发模型(ConcurrencyMode)
- WCF InstanceContextMode and ConcurrencyMode
- 【踩坑(Running)填坑(ZSSURE)】:WCF学习之InstanceContextMode与ConcurrencyMode
- WCF分布式开发步步为赢(12):WCF事务机制(Transaction)和分布式事务编程
- WCF并发(Concurrency)的本质:同一个服务实例上下文(InstanceContext)同时处理多个服务调用请求(转)
- WCF并发(Concurrency)的本质:同一个服务实例上下文(InstanceContext)同时处理多个服务调用请求
- 回调与并发: 通过实例剖析WCF基于ConcurrencyMode.Reentrant模式下的并发控制机制
- WCF分布式开发
- WCF 分布式事务-应用
- WCF分布式事务
- WCF分布式框架
- WCF 分布式事务-应用
- WCF 分布式事务
- WCF分布式开发必备知识(3):Enterpise Services
- 【Frank.Xu】WCF分布式开发必备知识(3):Enterpise Services
- WCF分布式开发步步为赢(3)WCF服务元数据交换、配置及编程开发
- jenkin服务端搭建
- Inspector面板优化的几种方式
- ORA-28000: the account is locked-的解决办法
- 测试文章
- 使用MediaExtractor和MediaMuxer分类和合成视频
- WCF分布式3-InstanceContext和ConcurrencyMode
- android 如何从依赖包 子包 跳转 主程序
- 【二叉树】113. Path Sum II
- Maven 创建maven-archetype-webapp项目时候缺少maven-archetype-webapp解决办法
- 安装Ubuntu16.04黑屏的解决办法
- 图论总结(6)最短路问题
- HAWQ + MADlib 玩转数据挖掘之(十一)——分类方法之决策树
- Ubuntu下使用adb和USB连接的方式进行android设备调试
- vue 时间格式化