本文整理汇总了C#中Akka.Event.EventStream.Subscribe方法的典型用法代码示例。如果您正苦于以下问题:C# EventStream.Subscribe方法的具体用法?C# EventStream.Subscribe怎么用?C# EventStream.Subscribe使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Akka.Event.EventStream
的用法示例。
在下文中一共展示了EventStream.Subscribe方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: NotAllowNullAsSubscriber
public void NotAllowNullAsSubscriber()
{
var bus = new EventStream(true);
XAssert.Throws<ArgumentNullException>(() =>
{
bus.Subscribe(null, typeof(M));
});
}
示例2: ManageSubscriptions
public void ManageSubscriptions()
{
var bus = new EventStream(true);
bus.Subscribe(TestActor, typeof(M));
bus.Publish(new M { Value = 42 });
ExpectMsg(new M { Value = 42 });
bus.Unsubscribe(TestActor);
bus.Publish(new M { Value = 43 });
ExpectNoMsg(TimeSpan.FromSeconds(1));
}
示例3: ManageSubscriptions
public void ManageSubscriptions()
{
var bus = new EventStream(true);
bus.StartUnsubscriber(Sys.AsInstanceOf<ActorSystemImpl>());
bus.Subscribe(TestActor, typeof(M));
bus.Publish(new M { Value = 42 });
ExpectMsg(new M { Value = 42 });
bus.Unsubscribe(TestActor);
bus.Publish(new M { Value = 43 });
ExpectNoMsg(TimeSpan.FromSeconds(1));
}
示例4: ManageSubChannelsUsingClassesAndInterfacesUpdateOnUnsubscribeAll
public void ManageSubChannelsUsingClassesAndInterfacesUpdateOnUnsubscribeAll()
{
var es = new EventStream(false);
var tm1 = new CC();
var tm2 = new CCATBT();
var a1 = CreateTestProbe();
var a2 = CreateTestProbe();
var a3 = CreateTestProbe();
var a4 = CreateTestProbe();
es.Subscribe(a1.Ref, typeof(AT)).ShouldBeTrue();
es.Subscribe(a2.Ref, typeof(BT)).ShouldBeTrue();
es.Subscribe(a3.Ref, typeof(CC)).ShouldBeTrue();
es.Subscribe(a4.Ref, typeof(CCATBT)).ShouldBeTrue();
es.Unsubscribe(a3.Ref).ShouldBeTrue();
es.Publish(tm1);
es.Publish(tm2);
a1.ExpectMsg((object)tm2);
a2.ExpectMsg((object)tm2);
a3.ExpectNoMsg(TimeSpan.FromSeconds(1));
a4.ExpectMsg((object)tm2);
es.Unsubscribe(a1.Ref, typeof(AT)).ShouldBeTrue();
es.Unsubscribe(a2.Ref, typeof(BT)).ShouldBeTrue();
es.Unsubscribe(a3.Ref, typeof(CC)).ShouldBeFalse();
es.Unsubscribe(a4.Ref, typeof(CCATBT)).ShouldBeTrue();
}
示例5: ManageSubChannelsUsingClasses
public void ManageSubChannelsUsingClasses()
{
var a = new A();
var b1 = new B1();
var b2 = new B2();
var c = new C();
var bus = new EventStream(false);
bus.Subscribe(TestActor, typeof(B2));
bus.Publish(c);
bus.Publish(b2);
ExpectMsg(b2);
bus.Subscribe(TestActor, typeof(A));
bus.Publish(c);
ExpectMsg(c);
bus.Publish(b1);
ExpectMsg(b1);
bus.Unsubscribe(TestActor, typeof(B1));
bus.Publish(c); //should not publish
bus.Publish(b2); //should publish
bus.Publish(a); //should publish
ExpectMsg(b2);
ExpectMsg(a);
ExpectNoMsg(TimeSpan.FromSeconds(1));
}
示例6: ManageSubChannelsUsingClassesAndInterfacesUpdateOnUnsubscribeAll
public void ManageSubChannelsUsingClassesAndInterfacesUpdateOnUnsubscribeAll()
{
var es = new EventStream(false);
var tm1 = new CC();
var tm2 = new CCATBT();
var a1 = TestProbe();
var a2 = TestProbe();
var a3 = TestProbe();
var a4 = TestProbe();
es.Subscribe(a1.Ref, typeof(AT)).Then(Assert.True);
es.Subscribe(a2.Ref, typeof(BT)).Then(Assert.True);
es.Subscribe(a3.Ref, typeof(CC)).Then(Assert.True);
es.Subscribe(a4.Ref, typeof(CCATBT)).Then(Assert.True);
es.Unsubscribe(a3.Ref).Then(Assert.True);
es.Publish(tm1);
es.Publish(tm2);
a1.expectMsg(tm2);
a2.expectMsg(tm2);
a3.expectNoMsg(TimeSpan.FromSeconds(1));
a4.expectMsg(tm2);
es.Unsubscribe(a1.Ref, typeof(AT)).Then(Assert.True);
es.Unsubscribe(a2.Ref, typeof(BT)).Then(Assert.True);
es.Unsubscribe(a3.Ref, typeof(CC)).Then(Assert.False);
es.Unsubscribe(a4.Ref, typeof(CCATBT)).Then(Assert.True);
}