Basically, what it Thread.Sleep()does is freezing the thread in which the code works, in which case the main thread of the application. Think about how your program does it:
Do something....
X ( "" )
- .
try/catch , .
, try/catch "" , - ( , , , "-" (.. ) ).
"" , catch, (, ).
try/catch, , , , , (, , .: P).