コード例 #1
0
        public void Create(CircleBufferEntry cbe)
        {
            currentReadIndex = currentWriteIndex;  //Sync

            cbes[currentWriteIndex++] = cbe;

            if (currentWriteIndex == cbes.Length)
            {
                currentWriteIndex = 0;
            }
        }
コード例 #2
0
        public CircleBufferEntry[] Read()
        {
            CircleBufferEntry[] cbuf = new CircleBufferEntry[cbes.Length];

            for (int i = 0; i < cbes.Length; i++)
            {
                if (cbes[currentReadIndex] != null)
                {
                    cbuf[i] = cbes[currentReadIndex++];
                }

                if (currentReadIndex == cbes.Length)
                {
                    currentReadIndex = 0;
                }
            }

            return(cbuf);
        }