InvokeRequired ist false, wenn der Befehl im selben Thread statt fand. Es muss eben nichts invoked werden. Damit beantwortet sich auch deine Frage ganz oben: Das sammeln der Serialport-Namen findet nicht in anderen Threads statt, die Controls (im GUI-Thread) müssen also nicht invoked werden (da alles im GUI-Thread passiert ist).