The two options you listed are usually used because of the differences in how applications update:
1) Event-Driven is usually used because your application is responding to a user.
2) Loop-Driven is used when the application needs to update, regardless of user interaction. (Games, ie: XNA, often use this because the screen is updating even if the user is doing nothing).
The two are not mutually exclusive. In fact, it's quite common to see an event based application start a timer that will trigger an "event" in a repeated "loop". Typically, this is done differently than a loop-driven application, but the effect is similar.
I would recommend not using a
full render loop style loop in a GUI-based application, however. They are very oriented towards games and attempts to have a near-realtime experience, and tend to cause user interaction to suffer. Instead, use a timer, such as the DispatcherTimer, or subscribe to
CompositionTarget.Rendering when you need to have a loop-driven style. You can easily remove the event handler when you are done with your continual update.
Reed Copsey, Jr. -
http://reedcopsey.com