The only place I find myself using Delegates is when working with multiple threads as cicatrix mentioned - basically you need to use them to be able to pass information from one thread to another. Take a look at JMC's codebank article here that describes how to get information from a background thread onto the UI thread (which is required to be able to update controls on the UI thread): http://www.vbforums.com/showthread.php?t=49838