public InteractionItem GetFirstItem(InteractionType type = InteractionType.User | InteractionType.Auto, InteractionState state = InteractionState.Regular | InteractionState.Removing) { lock (_queueLocker) { return(_queue.FirstOrDefault(i => type.HasFlag(i.Type) && state.HasFlag(i.State))); } }