private void TryFindTick()
        {
            CurrentTick currentTick = null;

            for (var i = 0; i < ProviderSimulator.NextSimulateSymbolId; i++)
            {
                var temp = currentTicks[i];
                switch (temp.State)
                {
                case TickState.None:
                    return;

                case TickState.Tick:
                    if (currentTick == null || temp.TickIO.lUtcTime < currentTick.TickIO.lUtcTime)
                    {
                        currentTick = temp;
                    }
                    break;

                case TickState.Finish:
                    break;
                }
            }
            if (currentTick == null)
            {
                return;
            }
            currentTick.State = TickState.None;
            var tick   = currentTick.TickIO;
            var symbol = currentTick.Symbol;

            TrySendTick(symbol, tick);
        }
        protected void ExtendCurrentTicks()
        {
            var length = currentTicks.Length == 0 ? 256 : currentTicks.Length * 2;

            Array.Resize(ref currentTicks, length);
            for (var i = 0; i < currentTicks.Length; i++)
            {
                if (currentTicks[i] == null)
                {
                    currentTicks[i] = new CurrentTick();
                }
            }
        }