Exemplo n.º 1
0
 public void NotifyComputedValueChanged(ComputedValueChangedArgs args)
 {
     foreach (var subscriber in subscribers)
     {
         InvokeActionOrRemove(subscriber.Key, subscriber => subscriber.ComputedValueChangedAsync(args));
     }
 }
Exemplo n.º 2
0
        private void OnComputedValueChanged(object sender, ComputedValueChangedArgs e)
        {
            bool executed = transactionLock.TryExecuteWithWriteLock(() =>
            {
                Subscribers.NotifyComputedValueChanged(e);
            });

            if (!executed)
            {
                computedValueChangedQueue.Enqueue(e);
                return;
            }

            DequeueAll();
        }
Exemplo n.º 3
0
        protected async override ValueTask <bool> TryInvokeAsync(ComputedValueChangedArgs e)
        {
            if (consumer == null)
            {
                return(false);
            }

            if (!consumer.IsAlive())
            {
                return(true);
            }

            await consumer.ForceUpdate();

            return(true);
        }
Exemplo n.º 4
0
        protected async override ValueTask <bool> TryInvokeAsync(ComputedValueChangedArgs e)
        {
            if (!initialized)
            {
                initialized = true;
                if (reactable.RequiresInitialInvoke())
                {
                    await InvokeInternalAsync(true);

                    return(true);
                }
            }

            await InvokeInternalAsync(false);

            return(true);
        }
 protected override ValueTask <bool> TryInvokeAsync(ComputedValueChangedArgs e)
 {
     throw new NotImplementedException();
 }