当前位置: 首页>>代码示例>>C#>>正文


C# ICancelable类代码示例

本文整理汇总了C#中ICancelable的典型用法代码示例。如果您正苦于以下问题:C# ICancelable类的具体用法?C# ICancelable怎么用?C# ICancelable使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


ICancelable类属于命名空间,在下文中一共展示了ICancelable类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: PeriodicAction

            IEnumerator PeriodicAction(TimeSpan period, Action action, ICancelable cancellation)
            {
                // zero == every frame
                if (period == TimeSpan.Zero)
                {
                    while (true)
                    {
                        yield return null; // not immediately, run next frame
                        if (cancellation.IsDisposed) yield break;

                        MainThreadDispatcher.UnsafeSend(action);
                    }
                }
                else
                {
                    var seconds = (float)(period.TotalMilliseconds / 1000.0);
                    var yieldInstruction = new WaitForSeconds(seconds); // cache single instruction object

                    while (true)
                    {
                        yield return yieldInstruction;
                        if (cancellation.IsDisposed) yield break;

                        MainThreadDispatcher.UnsafeSend(action);
                    }
                }
            }
开发者ID:MighteeCactus,项目名称:UniRx,代码行数:27,代码来源:MainThreadScheduler.cs

示例2: InternalScheduleTellOnce

 protected override void InternalScheduleTellOnce(TimeSpan delay, ICanTell receiver, object message, IActorRef sender, ICancelable cancelable)
 {
     var cancellationToken = cancelable == null ? CancellationToken.None : cancelable.Token;
     InternalScheduleOnce(delay, () =>
     {
         receiver.Tell(message, sender);
     }, cancellationToken);
 }
开发者ID:njannink,项目名称:sonarlint-vs,代码行数:8,代码来源:DedicatedThreadScheduler.cs

示例3: ClusterMetricsCollector

        public ClusterMetricsCollector(IActorRef publisher)
        {
            _publisher = publisher;
            _cluster = Cluster.Get(Context.System);
            Collector = MetricsCollector.Get(Context.System.AsInstanceOf<ExtendedActorSystem>(), _cluster.Settings);
            LatestGossip = MetricsGossip.Empty;
            Nodes = ImmutableHashSet.Create<Address>();

            _metricsCancelable = Context.System.Scheduler.ScheduleTellRepeatedlyCancelable(
                _cluster.Settings.PeriodicTasksInitialDelay.Max(_cluster.Settings.MetricsInterval),
                _cluster.Settings.MetricsInterval, Self, InternalClusterAction.MetricsTick.Instance, Self);

            _gossipCancelable = Context.System.Scheduler.ScheduleTellRepeatedlyCancelable(
                _cluster.Settings.PeriodicTasksInitialDelay.Max(_cluster.Settings.GossipInterval), 
                _cluster.Settings.GossipInterval, Self, InternalClusterAction.GossipTick.Instance, Self);

            Receive<InternalClusterAction.GossipTick>(tick => Gossip());
            Receive<InternalClusterAction.MetricsTick>(tick => Collect());
            Receive<MetricsGossipEnvelope>(envelope => ReceiveGossip(envelope));
            Receive<ClusterEvent.CurrentClusterState>(state => ReceiveState(state));
            Receive<ClusterEvent.MemberUp>(up => AddMember(up.Member));
            Receive<ClusterEvent.MemberRemoved>(removed => RemoveMember(removed.Member));
            Receive<ClusterEvent.MemberExited>(exited => RemoveMember(exited.Member));
            Receive<ClusterEvent.UnreachableMember>(member => RemoveMember(member.Member));
            Receive<ClusterEvent.ReachableMember>(member =>
            {
                if (member.Member.Status == MemberStatus.Up) AddMember(member.Member);
            });
            Receive<ClusterEvent.IMemberEvent>(@event => { }); //not interested in other types of member event
        }
开发者ID:rogeralsing,项目名称:akka.net,代码行数:30,代码来源:ClusterMetricsCollector.cs

示例4: SignalRClusterStatusActor

        public SignalRClusterStatusActor()
        {
            ClusterStatusTeller = Context.System.Scheduler.ScheduleTellRepeatedlyCancelable(TimeSpan.FromSeconds(5),
                    TimeSpan.FromSeconds(1), Self, new ClusterStatus.SendCurrentClusterState(), Self);

            Ready();
        }
开发者ID:Danthar,项目名称:Akka.Cluster.Monitor,代码行数:7,代码来源:SignalRClusterStatusActor.cs

示例5: PreStart

        protected override void PreStart()
        {
            _cluster = Cluster.Get(Context.System);
            _cancelStatusUpdates = Context.System.Scheduler.ScheduleTellRepeatedlyCancelable(TimeSpan.FromSeconds(5), TimeSpan.FromSeconds(2), Self, new SendState(), Self);

            base.PreStart();
        }
开发者ID:jurek333,项目名称:CoreWars,代码行数:7,代码来源:ClusterMonitor.cs

示例6: PerformanceCounterActor

 public PerformanceCounterActor(string seriesName, Func<PerformanceCounter> performanceCounterGenerator)
 {
     _seriesName = seriesName;
     _performanceCounterGenerator = performanceCounterGenerator;
     _subscriptions = new HashSet<IActorRef>();
     _cancelPublishing = new Cancelable(Context.System.Scheduler);
 }
开发者ID:fritsduus,项目名称:Akka.net-Bootcamp,代码行数:7,代码来源:PerformanceCounterActor.cs

示例7: PerformanceCounterMonitor

        /// <summary>
        ///		Create a new <see cref="PerformanceCounterMonitor"/> actor.
        /// </summary>
        /// <param name="seriesName">
        ///		The name of the data series that tracks the performance counter's value.
        /// </param>
        /// <param name="performanceCounterFactory">
        ///		A factory delegate that creates the <see cref="PerformanceCounter"/> to monitor.
        /// </param>
        public PerformanceCounterMonitor(string seriesName, Func<PerformanceCounter> performanceCounterFactory)
        {
            if (String.IsNullOrWhiteSpace(seriesName))
                throw new ArgumentException("Argument cannot be null, empty, or entirely componsed of whitespace: 'seriesName'.", nameof(seriesName));

            if (performanceCounterFactory == null)
                throw new ArgumentNullException(nameof(performanceCounterFactory));

            _seriesName = seriesName;
            _performanceCounterFactory = performanceCounterFactory;
            _cancelPublishing = new Cancelable(Context.System.Scheduler);

            Receive<GatherMetrics>(_ =>
            {
                Metric metric = new Metric(
                    _seriesName,
                    _performanceCounter.NextValue()
                );
                foreach (IActorRef subscriber in _subscribers)
                    subscriber.Tell(metric);
            });
            Receive<SubscribePerformanceCounter>(request =>
            {
                _subscribers.Add(request.Subscriber);
            });
            Receive<UnsubscribePerformanceCounter>(request =>
            {
                _subscribers.Remove(request.Subscriber);
            });
        }
开发者ID:tintoy,项目名称:akkadotnet-bootcamp-unit2,代码行数:39,代码来源:PerformanceCounterMonitor.cs

示例8: TopicLike

 protected TopicLike(TimeSpan emptyTimeToLive)
 {
     Subscribers = new HashSet<IActorRef>();
     EmptyTimeToLive = emptyTimeToLive;
     PruneInterval = new TimeSpan(emptyTimeToLive.Ticks / 2);
     PruneCancelable = Context.System.Scheduler.ScheduleTellRepeatedlyCancelable(PruneInterval, PruneInterval, Self, Prune.Instance, Self);
 }
开发者ID:yaozd,项目名称:akka.net,代码行数:7,代码来源:Topics.cs

示例9: PerformanceCounterActor

        public PerformanceCounterActor(string seriesName, Func<PerformanceCounter> performanceCounterGenerator)
        {
            _seriesName = seriesName;
            _performanceCounterGenerator = performanceCounterGenerator;
            _subscriptions = new HashSet<IActorRef>();
            _cancelPublishing = new Cancelable(Context.System.Scheduler);

            Receive<GatherMetrics>(m =>
            {
                //publish latest counter value to all subscribers
                var metric = new Metric(_seriesName, _counter.NextValue());
                foreach (var sub in _subscriptions)
                    sub.Tell(metric);
            });
            Receive<SubscribeCounter>(sc =>
            {
                // add a subscription for this counter
                // (it's parent's job to filter by counter types)
                _subscriptions.Add(sc.Subscriber);
            });
            Receive<UnsubscribeCounter>(uc =>
            {
                // remove a subscription from this counter
                _subscriptions.Remove(uc.Subscriber);
            });
        }
开发者ID:phhlho,项目名称:akka.net-bootcamp,代码行数:26,代码来源:PerformanceCounterActor.cs

示例10: Timeout

 private void Timeout()
 {
     _timedOut = true;
     _cancelHeartbeat?.Cancel(false);
     _cancelHeartbeat = null;
     Context.Parent.Tell(new ConnectionMessages.ConnectionLost());
 }
开发者ID:patchandthat,项目名称:Yakka,代码行数:7,代码来源:HeartbeatActor.cs

示例11: SignalRItemStatusActor

        public SignalRItemStatusActor()
        {
            ItemSubscriberTeller = Context.System.Scheduler.ScheduleTellRepeatedlyCancelable(TimeSpan.FromSeconds(5),
                    TimeSpan.FromSeconds(2), Self, new SubscribeToWorkers(), Self);

            Ready();
        }
开发者ID:rogeralsing,项目名称:Akka.Cluster.Monitor,代码行数:7,代码来源:SignalRItemStatusActor.cs

示例12: receiveEngineRunCommand

 private void receiveEngineRunCommand(MessageEngineRunCommand msg)
 {
     MessageTick pulse = new MessageTick(0);
     if (msg.RunCommand == EngineRunCommand.RunMax && _runState != TickEngineRunState.RunningMax)
     {
         cancelPulse();
         _numberOfIncompleteSS = _subscribedActorSolarSystems.Count();
         _runState = TickEngineRunState.RunningMax;
         startTicksTimer();
         receiveTick(pulse);
     }
     else if (msg.RunCommand == EngineRunCommand.RunPulse && _runState != TickEngineRunState.Running)
     {
         _runState = TickEngineRunState.Running;
         _runCancel = Context.System.Scheduler.ScheduleTellRepeatedlyCancelable(0, 5, Self, pulse, ActorRefs.Nobody);
         startTicksTimer();
         receiveTick(pulse);
     }
     else if (msg.RunCommand == EngineRunCommand.Stop && _runState != TickEngineRunState.Stopped)
     {
         _runState = TickEngineRunState.Stopped;
         cancelPulse();
         _secondTimer.Stop();
     }
 }
开发者ID:AshRolls,项目名称:GalaxyGen,代码行数:25,代码来源:ActorTickEngineCoordinator.cs

示例13: ClusterServiceStatusActor

        public ClusterServiceStatusActor()
        {
            _cancel = new CancellationTokenSource();
            ClusterServiceStatusTeller = Context.System.Scheduler.ScheduleTellRepeatedlyCancelable(TimeSpan.FromSeconds(5),
                    TimeSpan.FromSeconds(1), Self, new GetServiceStatus(), Self);

            Ready();
        }
开发者ID:Danthar,项目名称:Akka.Cluster.Monitor,代码行数:8,代码来源:ClusterServiceStatusActor.cs

示例14: CancelReceiveTimeout

 private void CancelReceiveTimeout()
 {
     if (_pendingReceiveTimeout != null)
     {
         _pendingReceiveTimeout.Cancel();
         _pendingReceiveTimeout = null;
     }
 }
开发者ID:njannink,项目名称:sonarlint-vs,代码行数:8,代码来源:ActorCell.ReceiveTimeout.cs

示例15: CheckReceiveTimeout

 public void CheckReceiveTimeout()
 {
     CancelReceiveTimeout();
     if (_receiveTimeoutDuration != null && !Mailbox.HasMessages)
     {
         _pendingReceiveTimeout = System.Scheduler.ScheduleTellOnceCancelable(_receiveTimeoutDuration.Value, Self, ReceiveTimeout.Instance, Self);
     }
 }
开发者ID:njannink,项目名称:sonarlint-vs,代码行数:8,代码来源:ActorCell.ReceiveTimeout.cs


注:本文中的ICancelable类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。