Ich habe eine Anwendung, wo ich einen Thread erstellt habe, die die Datenbank für einen bestimmten Typ von Daten für ein Timeout-Intervall überprüfen muss. Der Thread ist voll verantwortlich für das Erstellen der Datenbankverbindung, das Abfragen und das Schließen der Verbindung. Ich mache den CoInitialize-Aufruf nur einmal in der Thread-Ausführung und ich habe die Ado-Verbindung und Ado Query für die anschließende Verwendung wiederverwendet.kann mehrere Anrufe Councilitialize Absturz einer Anwendung?
Jetzt ist meine Frage, hatte ich zuvor (vielleicht irrtümlich) eine CoUnitialize-Anweisung in der Schleife für die Überprüfung der Datenbankdaten. was bedeutet, dass der Aufruf von CoUnitialize jedes Mal ausgeführt wurde. Warum ist die Anwendung nicht abgestürzt? Da keine Daten zur Freigabe von CoUnitialize vorhanden waren, sollte dies fehlgeschlagen sein. Ich bezweifle das.
Vielen Dank im Voraus
Ziemlich schwer zu verstehen, wie sich eine API verhalten soll, wenn Sie sie missbrauchen. Da "CoUninitialize" über keinen Mechanismus zum Melden von Fehlern verfügt, kann es nicht tatsächlich fehlschlagen. Warum ist deine App nicht abgestürzt? Vielleicht ist "CoUninitialize" robust gegenüber diesem Missbrauch. Egal was, repariere deine App und mach weiter. –
Ich hatte die gleiche Frage, ich eine meiner Apps, wenn ich einen zweiten Anruf bei CoInitialize die App eingefroren habe. –
tat ich eigentlich. Jetzt habe ich einen counitialize Anruf nur wenn mein Thread beendet wird. Dies wird nur ein (Coinit - CoUninit) Paar – CyprUS