Error "El tiempo de espera del semáforo ha expirado" para la conexión USB

Estoy recibiendo este error ...

El tiempo de espera del semáforo ha expirado.

En esta línea ...

ThePorts.ActivePort1.Open ();

... pero solo lo consigo de vez en cuando. Cuando sucede, pasa una y otra vez. Luego el problema desaparece, durante horas o días, y luego vuelve.

El puerto serie es un USB con un BlueTooth conectado.

Creo que este tipo tenía un problema muy similar, pero no en C #

Congelar en SerialPort.Open / DeviceIoControl / GetcommState con usbser.sys

Lo mejor que puedo estimar, he leído todo su problema, y ​​los comentarios resultantes, y la respuesta, pero realmente no puedo averiguar cuál solucionó su problema, o si C # es significativamente diferente de lo que estaba experimentando.

Gracias por cualquier ayuda para los despistados. Este es el código real donde está sucediendo.

public static void Open_ActivePortWeWillUse(String Drone_StringNameFromUser)
{
    SerialPort TempSerialPort = new SerialPort(Drone_StringNameFromUser, (int) SerialPortSpeed);

    ThePorts.ActivePort1 = TempSerialPort;

    ThePorts.ActivePort1.DataBits = 8;
    ThePorts.ActivePort1.Parity = Parity.None;
    ThePorts.ActivePort1.StopBits = StopBits.One;

    ThePorts.ActivePort1.DataReceived += new SerialDataReceivedEventHandler(OurBackGroundSerialPortReceiver);

    ThePorts.ActivePort1.Open();  // "Sometimes" Error hits here
}

Respuestas a la pregunta(3)

Su respuesta a la pregunta