That is a bad idea. As others have said, your long operation needs to move to another thread. There are a couple of ways to do that, the best choice depends on the operations. What is it you are doing? How long does it take, and how often does your code need to access the GUI in that time? BTW1: I don't use Control.BeginInvoke(); when I need invoking, I use Control.Invoke(). BTW2: IMO a long operation needs a way to get cancelled (the user sits there waiting and has the time to change his mind); and a progress bar is also nice to have. These are additional reasons to do things properly, i.e. with an extra thread. :)
Luc Pattyn [My Articles] Nil Volentibus Arduum