Os objetos IDisposable são descartados se o programa for desligado inesperadamente?

O que acontece se o programa sair inesperadamente (por exceção ou se o processo for finalizado)? Existem situações como essa (ou não) em que o programa será encerrado, masIDisposable objetos não serão descartados corretamente?

A razão pela qual estou perguntando é porque estou escrevendo um código que se comunicará com um periférico e quero garantir que não haja chance de que ele fique em mau estado.

questionAnswers(6)

yourAnswerToTheQuestion