AS simple workaround can be this:
try
{ }
Gmidi.midiOut = new MidiOut(Gmidi.VMidiDevice);
this.Closed += (o, s) => Gmidi.midiOut.Dispose();
Gmidi.midiIn = new MidiIn(Gmidi.IMidiDevice);
this.Closed += (o, s) => Gmidi.midiIn.Dispose();
Gmidi.midiIn.Start();
catch
{
}
The problem is after the exeption I have assertion, some times can ignore all times freeze all.