C#: les événements ou un observateur de l'interface? Avantages/inconvénients?

J'ai suivantes (simplifié):

interface IFindFilesObserver
{
    void OnFoundFile(FileInfo fileInfo);
    void OnFoundDirectory(DirectoryInfo directoryInfo);
}

class FindFiles
{
    IFindFilesObserver _observer;

    //...
}

...et je suis en conflit. C'est en gros ce que j'aurais écrit en C++, mais le C# a des événements. Dois-je changer le code pour utiliser les événements, ou devrais-je le laisser seul?

Quels sont les avantages ou les inconvénients d'événements sur une traditionnelle observateur de l'interface?