I'm still thinking about this and I'm not an expert with events.
Would it be safer to do this and not worry about .NET/COM relations?
While Me.Visible
...
End While
though sfml can be hosted in a control, it still acts as it's own window
You do realize with WinForms every single control is actually its own window?
if sfml crashes, my application won't shut down
So if sfml crashes, then this loop exits, but my form won't close.
Ehhh... I really don't get what you mean by "crashes". Because if SFML throws an exception (like any other piece of code can) either you handle that exception and your program keeps on running... or you don't handle that exception and your program will die. SFML's render window is nothing special and it won't cause this case you thought of.
So if sfml crashes, then this loop exits, but my form won't close.
This doesn't make any sense and won't ever happen.
Would it be safer to do this and not worry about .NET/COM relations?
While Me.Visible
...
End While
This doesn't make any sense either... SFML doesn't even use COM.