コード例 #1
0
        public async Task <Task> RegisterStreamAsync(StreamInfo <T> streamInfo, List <T> initData = null)
        {
            var data = StreamData <T> .Create(streamInfo, initData);

            _lock.EnterWriteLock();

            try
            {
                _streamList.Add(data);
            }
            finally
            {
                _lock.ExitWriteLock();
            }

            if (initData == null)
            {
                return(data.CompletionTask.Task);
            }

            var tasks = initData.Select(value => WriteStreamAsync(data, value)).ToList();

            await Task.WhenAll(tasks);

            return(data.CompletionTask.Task);
        }
コード例 #2
0
        public Task RegisterStream(StreamInfo <T> streamInfo, T initData = null)
        {
            var data = StreamData <T> .Create(streamInfo, initData);

            _streamList.Add(data);

            if (initData != null)
            {
                data.Stream.WriteAsync(initData);
            }

            return(data.CompletionTask.Task);
        }