EventSourceException: Keine freien Puffer vom Betriebssystem verfügbar

Der vollständige Ausnahmetext lautet:

EventSourceException: Keine freien Puffer vom Betriebssystem verfügbar (z. B. Ereignisrate zu schnell).

Ich rufe diese Methode wegen Rekursion ungefähr eine Million Mal auf. Es hört nicht auf, ich bekomme nur den Ausnahmetext im Output-Debug-Fenster von VS2013. Aber es ist super langsam.

private static IEnumerable<string> RecursiveFindServices(ISymbol sym, Solution sln)
{
    List<string> list = new List<string>();
    var callers = SymbolFinder.FindCallersAsync(sym, sln).Result;  // this line may cause the EventSourceException  (try not to call Async)
    foreach(var caller in callers)
    {
        string name = GetMethodName(caller);
        if (caller.CallingSymbol.ContainingType.Name.EndsWith("Test"))
            continue;

        if (recursiveList.Contains(name))
            continue;

        recursiveList.Add(name);

        if (IsWebservice(caller))
            list.Add(name);
        else
            list.AddRange(RecursiveFindServices(caller.CallingSymbol, sln));
    }

    return list;
}

Weiß jemand, was diese Ausnahme bedeutet und wie sie behoben werden kann? Ich gehe davon aus, dass die langsame Geschwindigkeit mit dieser Ausnahme zusammenhängt.

IsWebservice() undGetMethodName() sind reine String-Methoden.

Ich führe Roslyn in einem VS2013-Projekt unter .NET 4.5.2 aus. Kann das damit zusammenhängen? Ich habe gerade dieses Nuget-Paket installiert

PM> Installationspaket Microsoft.CodeAnalysis

Und dann musste ich kopieren und die folgenden Dateien in mein Projekt aufnehmen.

Microsoft.Build.Conversion.Core.dll     (File Version 14.0)
Microsoft.Build.dll                     (File Version 14.0)
Microsoft.Build.Engine.dll              (File Version 14.0)
Microsoft.Build.Framework.dll           (File Version 14.0)
Microsoft.Build.Tasks.Core.dll          (File Version 14.0)
Microsoft.Build.Utilities.Core.dll      (File Version 14.0)
System.Threading.Tasks.Dataflow.dll     (File Version 4.5.24)

Jede Idee, wie man den Code beschleunigt oder die Hauptursache der Ausnahme findet, ist hilfreich. //Vielen Dank :-

Antworten auf die Frage(4)

Ihre Antwort auf die Frage