Здесь есть несколько потенциальных возможностей.Во-первых, просто потому, что вы вызываете Close, это не означает, что порт физически освобожден - это верно даже для C. Это зависит от состояния UART и от того, как был написан фактический драйвер.Может потребоваться время от звонка на Close до фактического драйвера, освобождающего порт.Это, я полагаю, то, что вы на самом деле видите, потому что вы фактически вручную вызываете close, а не ждете, когда Finalizer уничтожит ваш экземпляр Port и неявно закроет его - это займет еще больше времени.это предполагает, что ваш вызов Close действительно выполняется.Если это не так, то вам нужно понять, как финализация объекта работает в управляемом коде.Это не имеет ничего общего с ООП, оно имеет отношение к управлению памятью.Когда объект выходит из области видимости и у него больше нет корней (ссылок), он становится доступным для сбора, но это не означает, что он немедленно освобождается.Фактически, может пройти некоторое время, прежде чем финализатор запустится, особенно если приложение продолжает работать.