ContextSwitchDeadlock (MDA)

Alfred_

Erfahrenes Mitglied
Hi,
ich generiere mehrere 100tausend Datensätze, wobei ich nach ca. 50.000 nachstehende Fehlermeldung erhalte:
'-----
Die CLR konnte 60 Sekunden lang keinen Übergang vom COM-Kontext 0x1b2a58 zum COM-Kontext 0x1b2bc8 durchführen. Der Thread, der Besitzer des Zielkontexts/-apartments ist, wartet entweder, ohne Meldungen zu verschieben, oder verarbeitet eine äußerst lang dauernde Operation, ohne Windows-Meldungen zu verschieben. Eine solche Situation beeinträchtigt in der Regel die Leistung und kann sogar dazu führen, dass die Anwendung nicht mehr reagiert oder die Speicherauslastung immer weiter zunimmt. Zur Vermeidung dieses Problems sollten alle STA-Threads (Singlethread-Apartment) primitive Typen verwenden, die beim Warten Meldungen verschieben (z.B. CoWaitForMultipleHandles), und bei lange dauernden Operationen generell Meldungen verschieben.
'-----
Anmerkung:Wenn ich bei der Fehlermeldung den Button >Weiter< drücke, dann stabilisiert sich die Größe der Auslagerungsdatei. Wie löse ich dieses Problem?
'-----
Eine kleine Frage hätte ich noch: Was ist schneller, die Insert-Methode mit SqlCommand oder der SqlBuilder mit abschließendem Update?
Diese Frage deswegen weil ich mit meinem VB.Net in Verbindung mit MySQL nur über ein Anfängerwissen verfüge. Derzeit habe ich den Eindruck dass VB6 mit Access schneller ist. Aber das kann an meinem Anfängerwissen liegen.
Danke und Grüße
 
Zurück