Thanks, JonnyPoet, for input, but this doesn't solve my problem...

My problem is how to have the lengthy methods report their progress without using any calls to GUI from the code. The biggest problem is that I need the progress to be reported several times, not only one, so I can't just set the waiting message in GUI level. I was thinking about a delegate as one of the arguments to all these methods, something like:

Code:
public delegate void ProgressCallback(string text);
From the GUI code I would pass the SetText(string text) method as the argument then.

Is this a good enough way to do this?..

Thanks.