public void ReadContent <TState>(int size, ReadCallback <TState> callback, TState state) { if (data != null && dataOffset < data.Size) // 存在可用 { data.Discard(dataOffset); dataOffset = size; callback(size < data.Size ? data.CreateSubData(size) : data, state); } else { GetPacketData(size, ProcessContent <TState>, new object[] { size, callback, state }); } }