, . , Control.BeginInvoke, , (*) , - . , , , BeginInvoke, , , , BeginInvoke, , . BeginInvoke, , , , , . , , , , , - ( ).
, 300 Try-Catch-Ignore. . BeginInvoke, catch, - TryBeginInvoke. , - , can't-do-anything-about . , 300 , , , 300 .
(*) It would be possible to use locks to protect BeginInvoke and Dispose methods, but this adds considerable complexity and creates additional opportunities for something to go wrong. If the .net TryBeginInvoke method existed, that would be beautiful. Since it does not exist, it seems that the best approach is to record such a procedure for wrapping BeginInvoke using the Try-Catch-Ignore block.