当前位置: 首页 > news >正文

网站建设与优化推广的话术网站建设与管理项目1项目规划

网站建设与优化推广的话术,网站建设与管理项目1项目规划,网站抓取qq,网站建设服务哪里便宜步骤 现在我想再添加一个方法,到IGrains项目内,这个方法里面有个延迟3秒,然后返回一个Taskstring.就叫做DelayedMsg吧,如下图所示: 我调用了这个DelayedMsg,同时又调用了SayHello函数,看看效果:注意这个DelayedMsg的调用方法没有await. 虽然我的SayHello的调用时间紧随…步骤 现在我想再添加一个方法,到IGrains项目内,这个方法里面有个延迟3秒,然后返回一个Taskstring.就叫做DelayedMsg吧,如下图所示: 我调用了这个DelayedMsg,同时又调用了SayHello函数,看看效果:注意这个DelayedMsg的调用方法没有await. 虽然我的SayHello的调用时间紧随着DelayedMsg之后, 可是发现SayHello仍然延迟了3秒才出来,这是因为SayHello必须等待DelayedMsg方法执行完毕.如图: 这说明一件事情,就是grain接受消息是异步的。而且Grain处理消息是“单线程约束”的。 如果有两个Grain实例一个调用DelayMsg而另一个调用SayHello可以发现此时的SayHello会立马执行如图 这又说明两个不同的Grain实例是在不同的线程执行的。 解释一下 好了初步的例子就展现到此现在来解释一下下…  1.往Grain发送消息实质上是调用它的接口但是不论何时不论何地哪怕是不同的计算机调用具有相同标识的Grain里的任何一个方法这些方法都会在单一的线程中被执行。所以如果Grain有个list类型的私有字段在操作的这个字段的时候就无需架锁。因为list根本不会出现“脏读”。所以在Orleans的世界里消息的处理可以做到全程无锁。 2.Grain的标识Orleans使用以下类型作为Grain的标识GuidLongString以及组合标识。在面向对象的环境中,做到严格区分一个实例和一个实例的引用,并不是很容易,有时候很容易混淆,就算混淆了对程序也不会有太大影响.在分布式的环境里想要用一个对象的引用来代表这个对象,这是做不到的.因为对象的引用只有在一定的地址空间内才有效,而在分布式的环境下,系统有可能分布在多台机器上. 这就要求用一个新的东西来代表Grain.这就是使用标识的原因.使用标识时,Orleans要求主标识对于一个特定的grain类来说,要唯一.因此一个grain的完整标识必须时由它的类型和它的主标识组成.在实际使用的过程中,很少去关注grain的完整标识,在记录日志的时候,完整标识也许有点用.大部分时候只需要知道主标识就可以了,Orleans提供了几个方法,可以调用它们得到grain实例的主标识:在Grain类的内部,可以通过调用this. GetPrimaryKeyXXX()得到本实例的标识.而在Grain的外部,则只能通过指定主标识来往对应的对象发送消息,比如以下语句: GrainClient.GrainFactory.GetGrainIExample(1) ; 简单一句话,Orleans通过标识来区分grain的所有实例.要想使用Grain必须通过GetGrain方法得到一个对应实例的引用,再通过调用此引用的方法往对应对象发送消息. 组合标识对应的可以继承一个IGrainWithGuidCompoundKey或者IGrainWithIntegerCompoundKey,如下所示. public interface IExampleGrain : Orleans.IGrainWithIntegerCompoundKey { Task Hello(); } 在客户端,你可以在GrainFactory.GetGrain方法中设置第二个参数.  var grain GrainClient.GrainFactory.GetGrainIExample(0, a string!); 为了在grain内部获得主标识,我们需要调用GetPrimaryKey 的方法. public class ExampleGrain : Orleans.Grain, IExampleGrain { public Task Hello() { string keyExtension; long primaryKey this.GetPrimaryKey(out keyExtension); Console.WriteLine(Hello from keyExtension); return TaskDone.Done; } } 3.Grain是虚拟的Actor---.Orleans的Actor模型更进一步,它是”虚拟Actor”的模型.任何时候都可以直接使用GetGrain方法得到一个Grain的引用.就好像对应的Grain对象早就创建好了,等待被人引用一样.这种表现背后的工作都由silo来完成,当你调用GetGrainIgrainA方法后,意图得到grainA类的一个实例的引用,silo会在服务端的内存中通过复制来激活一个grainA的实例.这个复制内存的过程在Orleans中称之为激活(activation),所以每一个grain类都可以重写一个方法就是OnActivationAsyc.在这个方法里可以实现类似于初始化的动作. 激活一个Grain实例之后,如果长时间没有新的消息到达此实例,这个Grain也许会被反激活,进入休眠状态,这时候可以通过重写OnDeactivateAsync来干预反激活过程,大部分应该是些扫尾的工作. 不用显式的创建和销毁一个grain对象.关于虚拟Actor的进一步讨论,会在下一篇中继续进行. 4.Grain内部如果想要发送消息给其他的Grain.必须使用类内部的GetGrain方法,而不能通过GrainClient.GrainFactory.GetGrain方法. 5.Grain可以有字段,这些字段可以是公共的,也可以是静态的.但是如果这样设计,使用者必须小心处理. 其实在Orleans的世界里,公共字段没有太大的用处,因为你要想得到Grain的实例,必须通过GetGrain方法,而此方法返回的引用里并没有字段,而只有方法(因为是接口)… 静态字段也许有用,比如有人想要用一个静态字段来保存所有活动的GrainA类实例,一个办法就是使用静态字段.但是这是一个麻烦的办法,因为此字段有可能”脏读”.要想有效的控制此字段的读写,就要架锁..这破坏了很多Orleans带来的好处..,简单的办法就是再创造一个grainB类型,让它的一个实例来统一管理所有的GrainA实例.这样就还是一个纯洁的Orleans世界. 好了,这样简单Orleans完全体就说完了.可是这个例子还是太过于简单了.虽然体现了Orleans的系统的主要方面,但是并不是所有的关键方面.仍然是一个类似于WCF程序或者类似于RPC的框架.吃瓜群众的c#理论知识还是很丰富的. 在orleans框架里,Grain就是对应的理论模型的actor,所以很多语境下,actor和grain是相同的.这个必须要强调下. 为了进一步破坏吃瓜群众的阴毛..我决定弄一个稍微复杂的例子,让Orleans摆脱这些帽子. 相关文章  .NET的Actor模型Orleans微软分布式云计算框架Orleans(1)Hello World微软分布式云计算框架Orleans(2)容灾与集群(1)Aaron Stannard谈Akka.NET 1.1使用Akka.net开发第一个分布式应用Orleans入门例子 原文地址http://www.cnblogs.com/gaopang/p/7382987.html .NET社区新闻深度好文微信中搜索dotNET跨平台或扫描二维码关注
http://www.huolong8.cn/news/230039/

相关文章:

  • 做响应式网站费用wordpress视频显示控件
  • 长沙网站设计公司怎么样有限责任公司章程
  • 屏蔽网站接口js广告有做微信婚介网站的吗
  • 黄山公司做网站深圳网站建设联雅
  • 网站速度慢的原因杭州网站建设公司排行
  • 网站中的轮播怎么做wordpress模板修改内容
  • 网站运行速度优化官方网站找oem做洗发水厂家
  • 网站功能怎么写沙井商城网站建设
  • 做网站用什么开发好建设银行舒城支行网站
  • 百度一下app北京网站优化seo
  • 一站式免费建站平台北海网站开发
  • 十堰网站建设培训学校网店无货源怎么做
  • 个人设计师的网站企业的网站建设
  • 县级门户网站用什么源码好怎么开自己的网店
  • 网站建设与开发开题报告网站上展示手机页面是怎么做的
  • 电商网站 投诉2024小学生时事新闻十条
  • 学校网站建设报价重庆子建设工程信息网官方
  • 企业网站如何建设报告太原注册公司在哪个网站申请
  • 海门住房和城乡建设部网站河北省建设厅网站官网业务系统
  • 网站设计工资一般多少青岛网站建设收费哪个平台好
  • 如何做公证网站网页发布时间自己设计一款新产品
  • 青海省住房建设厅网站没有公司怎么做网站
  • 泰州做网站哪家好怎么样在网站上做跳转
  • 做网站软件_手机北海网站建设网
  • 淘宝客的网站怎么做的南京斯点企业网站建设
  • 网站备案要啥wordpress本地环境链接404
  • 广东省建设厅人才网站php做网站用html做吗
  • 网站发布信息的基本流程怎么在百度上发布广告
  • 青岛开发区做网站网站商城是用什么框架做的
  • 棋盘网站开发重庆建筑工程安全施工管理安全网