If you have native code running, Timeout has no effect. I assume this is because it relies on Thread.Abort. Is there anything that could be done to improve this? A native way to nuke it if Thread.Abort does nothing?