using System; using System.Collections.Generic; using System.Text; class Program { delegate void MessagePrintDelegate(string msg); static void Main(string[] args) { MessagePrintDelegate mpd = new MessagePrintDelegate(PrintMessage); LongRunningMethod(mpd); } static void LongRunningMethod(MessagePrintDelegate mpd) { for (int i = 0; i < 99; i++) { if (i % 25 == 0) { mpd(string.Format("Progress Made. {0}% complete.", i)); } } } static void PrintMessage(string msg) { Console.WriteLine("[PrintMessage] {0}", msg); } }