private void Start()
        {
            // Publish()の返り値は
            // IConnectableUniTaskAsyncEnumerable<T>
            _connectableUniTaskAsyncEnumerable =
                UniTaskAsyncEnumerable
                .EveryUpdate().Publish();

            // この時点ではまだ値は発行されない
            _connectableUniTaskAsyncEnumerable
            .ForEachAsync(_ => Debug.Log(Time.frameCount));
        }
예제 #2
0
 public AsyncMessageBroker()
 {
     channel         = Channel.CreateSingleConsumerUnbounded <T>();
     multicastSource = channel.Reader.ReadAllAsync().Publish();
     connection      = multicastSource.Connect();
 }
예제 #3
0
 //这里使用了Rx的一个技巧,让一个消费者订阅Channel,然后把这个消费者作为新的广播者,就可以被多个消费订阅了。
 public AsyncMessageBroker()
 {
     channel         = Channel.CreateSingleConsumerUnbounded <T>();
     multicastSource = channel.Reader.ReadAllAsync().Publish();
     connection      = multicastSource.Connect(); // Publish returns IConnectableUniTaskAsyncEnumerable.
 }