Es geht um 500 ms in einem neu erstellten Konsolenprojekt
500 msec ist eine magische Zahl in .NET. Sie können Einblick in den Quellcode für den C# -Sprachdienst erhalten, der versehentlich (?) Von einem Microsoft-Programmierer auf GitHub bereitgestellt wurde. Relevanteste Datei ist wahrscheinlich this one:
internal interface IBraceMatchingService
{
Task<BraceMatchingResult?> GetMatchingBracesAsync(Document document,
int position, CancellationToken cancellationToken = default(CancellationToken));
}
Oder in anderen Worten, der Klammer-Matching-Service läuft als Hintergrundaufgabe. Solche Tasks werden normalerweise in einem Thread-Pool-Thread ausgeführt und unterliegen der Planung durch den Threadpool-Manager. Hier kommt die magische 500-ms-Zahl ins Spiel. Der Manager versucht, die Anzahl der tp-Threads auf die Anzahl der Prozessorkerne zu beschränken, die auf dem Computer verfügbar sind. Dies ist die effizienteste Methode zum Ausführen von Threads. Wenn die vorhandenen TP-Threads jedoch zu lange dauern, um ihren Job zu beenden, geht der Manager davon aus, dass sie von I/O festgefahren sind und eine zusätzliche Ausführung zulassen. Dies geschieht einmal alle 500 ms.
Also erste Schätzung Ihres Problems ist, dass VS zu viele aktive Thread-Pool-Threads hat und sie nicht rechtzeitig abgeschlossen werden. Verursachen Sie, dass die Klammerzuordnungsaufgabe zu spät ausgeführt wird.
Herauszufinden genau was spezifische Aufgaben sie biegen technisch möglich ist. Ich kann den Erfolg der Community-Edition nicht garantieren, und Sie benötigen eine Menge Kenntnisse darüber, wie Sie Thread-Call-Stacks lesen, um weiter zu kommen. Starten Sie eine andere Instanz von Visual Studio und verwenden Sie Debug> An Prozess anhängen. Wählen Sie "devenv.exe" aus der Liste. Lassen Sie es trundle, während es versucht, PDB-Dateien zu finden, dann verwenden Sie Debug> Break All.
Zuerst suchen Sie nach Debug> Windows> Tasks. Es ist ziemlich unwahrscheinlich, dass du dort etwas sehen wirst, normal ist es, keine zu sehen. Der nächste ist Debug> Windows> Threads. Sie sollten ungefähr 15 aktive Threads zurück in diesem Fenster sehen. Bewegen Sie den Mauszeiger über ihre Standortspalte, um einen Blick auf deren Anrufliste zu werfen. Sinn zu machen, was Sie sehen, ist leider nicht so einfach, es hilft einem Los, wenn Sie vergleichen können, was Sie mit einer anderen Maschine sehen, die dieses Problem nicht hat.
Da Sie dieses Problem auf mehr als einer Maschine haben, besteht ein anderer Ansatz darin, nach einem gemeinsamen Umweltfaktor zu suchen. Zu beachten sind aggressive Anti-Malware, eine Netzwerkverbindung, die zu langsam oder zu unzuverlässig ist, ein schlecht funktionierendes Add-In, das Ihnen gefällt, aber auf einer VS-Version, auf der es nicht getestet wurde, schlecht läuft.
Und bedenken Sie, dass VS2015 nicht genau zur Prime-Time bereit ist. Von allen aktuellen VS-Versionen, die in den letzten 18 Jahren veröffentlicht wurden, ist es wahrscheinlich am wenigsten stabil. Es hat eine Los von schweren internen Änderungen und es gab eine noch nie dagewesene Anzahl von Alpha-und Beta-Versionen mit kritischen Bug-Fixes vor nur ein paar Monaten implementiert. Versuchen Sie es erneut, nachdem Update 1 veröffentlicht wurde.
Bei einer Neuinstallation von Windows 10, Visual Studios 2015 Ultimate überprüft. Erstellt eine leere Windows Form Application, C#. Ich kann keine erkennbare Verzögerung bei der Auswahl der Endklammer und der Hervorhebung der Öffnungsklammer erzeugen. Vielleicht hat die IDE Probleme, die passenden Klammern zu finden? Seltsam, noch nie gesehen oder gehört, also bin ich neugierig. – ydobonebi
Ich bin auch nicht in der Lage, Ihr Problem zu replizieren. Getestet auf einer umfangreichen C# -Codedatei in der VStudio 2015 Community Edition. Vielleicht gibt es ein niedrigeres Problem? –
Welches Betriebssystem verwenden Sie? –