Using Glibmm Main Event Loop

I am trying to understand and use Glibmm Main Event Loop. I find it difficult to understand what it actually do.
A program that wants to use the Main Event Loop first defines it like this:
Glib::RefPtr<Glib::MainLoop> _mainloop;

Then the constructor creates it like this:
Application::Application () :
_mainloop (Glib::MainLoop::create())
{...}

The application must implement a run function where it calls on mainloop->run().
void
Application::run()
{
_mainloop->run();
}