Um herauszufinden, was Ihr System hängen lässt, müssen Sie zunächst auf den Windows-Hang bohren. Was hat Windows gemacht, während Sie den Hang erlebt haben?
Um das herauszufinden, können Sie einen Kernel-Dump machen. Wie man einen Kernel Dump bekommt und analysiert, lesen Sie here.
Abhängig von den Ergebnissen, die Sie dort erhalten, müssen Sie dann entscheiden, ob es irgendetwas unter Ihrer Kontrolle gibt, über das Sie tun können. Da Sie eine Drittanbieter-Bibliothek zum Schreiben verwenden, gibt es wenig, was Sie tun können, außer IO priority, Thread-Priorität auf Thread- oder Prozessebene. Wenn die Bibliothek Links zu einem bestimmten CRT erhalten hat, könnten Sie versuchen, Ihre eigene angepasste Version davon zu erstellen, z. Leeren Sie nach jedem Schreibvorgang, um zu verhindern, dass das Schreiben durch das Betriebssystem kombiniert wird, um nur Daten in großen Stückzahlen zurück auf die Disc zu schreiben.
Edit1
Ihre beste Wette auf spülen Sie das Gerät würde nach jedem schreiben. Dies könnte das Betriebssystem dazu zwingen, alle anstehenden Daten zu löschen und die aktuellen ausstehenden Schreibvorgänge auf die Disk zu schreiben, ohne die Schreibvorgänge bis zu einem bestimmten Betrag zwischenzuspeichern.
Die zweitbeste Sache wäre einfach zu warten nach jedem Schreiben, um dem Betriebssystem die Möglichkeit zu geben, ausstehende Änderungen zu schreiben, obwohl klein zurück auf die CD nach einem bestimmten Zeitintervall.
Wenn Sie tiefer in Leistung sind, sollten Sie versuchen, XPerf auszuprobieren, die eine nette GUI hat und Ihnen sogar den Aufruf-Stapel zeigt, wo Ihr Prozess aufhängte. Das Windows-Team und viele andere Teams bei MS verwenden dieses Tool zur Fehlerbehebung bei Hang experiences. Die neueste Ausgabe mit vielen weiteren Funktionen kommt mit der Windows 8 SDK. Aber Vorsicht, Xperf funktioniert nur unter OS> Vista.
Ich verstehe es nicht. Sie möchten nie blockieren, aber Sie verwenden eine sehr niedrige Thread-Priorität? Das ergibt keinen Sinn. Was genau ist dein äußeres Problem? –
@ david-schwartz-Schreiboperation ergibt eine Gesamtsystemverzögerung bei einer bestimmten Frequenz. Ich interessiere mich nicht für Blockierung im Thread, ich meinte Systemverzögerung ..., wird die Frage – Ulterior
korrigieren Haben Sie weitere Details darüber, was das Problem ist? Ist es zum Beispiel, dass das Volumen der Schreibvorgänge andere Informationen aus dem Cache verschiebt? Wenn Sie wissen, was Sie tun, können Sie [nicht-temporale Schreibvorgänge ausführen, die den Festplatten-Cache umgehen] (http://support.microsoft.com/kb/99794). –