Example #1
0
        private void SecureUpToItem(int maxItem)
        {
            maxItem = Math.Min(maxItem, Length);
            var itemsToRead = maxItem - BufferedItemsCount;

            //Console.WriteLine("SecureUpToItem: {0}, {1}, {2}", MaxItem, BufferedItemsCount, ItemsToRead);

            if (itemsToRead > 0)
            {
                try
                {
                    var dataLength = itemsToRead * StructSize;
                    var data       = new byte[dataLength];

                    /*
                     * Stream.BeginRead(Data, 0, DataLength, (AsyncState) =>
                     * {
                     *  int Readed = Stream.EndRead(AsyncState);
                     *  CachedValues.AddRange(PointerUtils.ByteArrayToArray<TType>(Data));
                     * }, null);
                     */
                    CustomThreadPool.AddTask(0, () =>
                    {
                        var readed = _stream.Read(data, 0, dataLength);
                        _cachedValues.AddRange(PointerUtils.ByteArrayToArray <TType>(data));
                    });
                }
                catch (Exception exception)
                {
                    Console.Error.WriteLine(exception);
                }
            }
        }