Ik heb een thread waarin op de volgende manier een datatable wordt uitgelezen:
Daar onststaat dus ook het probleem. De thread begint te klagen dat de datatable is gewijzigd. De volgende foutmelding krijg ik:
An unhandled exception of type 'System.InvalidOperationException' occurred in mscorlib.dll
Additional information: Collection was modified; enumeration operation may not execute.
Ik dacht dat met
Blijkbaar niet dus! Als er een nieuwe row wordt toegevoegd in de table 'links' in de oorspronkelijke dataset, dan wordt blijkbaar ook de 'kopie' (datatable dt) aangepast...
Is dit op te vangen door op de één of andere manier een echte kopie van de datatable te creeren?
Visual Basic .NET:
Ergens anders in de mainthread wordt op een gegeven moment een row toegevoegd aan de datatable 'links'1
2
3
4
5
6
7
| Dim ds As DataSet = DataSet1 Dim dt As DataTable = ds.Tables("links") Dim dr As DataRow For Each dr In dt.Rows ' hier wordt voor elke row een bestand gedowload van internet ' wat dus enige tijd kost Next |
Daar onststaat dus ook het probleem. De thread begint te klagen dat de datatable is gewijzigd. De volgende foutmelding krijg ik:
An unhandled exception of type 'System.InvalidOperationException' occurred in mscorlib.dll
Additional information: Collection was modified; enumeration operation may not execute.
Ik dacht dat met
Visual Basic .NET:
de datatable dt een nieuwe collectie wordt met een kopie van de table 'links'?1
| Dim dt As DataTable = ds.Tables("links") |
Blijkbaar niet dus! Als er een nieuwe row wordt toegevoegd in de table 'links' in de oorspronkelijke dataset, dan wordt blijkbaar ook de 'kopie' (datatable dt) aangepast...
Is dit op te vangen door op de één of andere manier een echte kopie van de datatable te creeren?
Home Assistant | Unifi | LG 51MR.U44 | Volvo EX30 SMER+ Vapour Grey, trekhaak | SmartEVSE V3 | Cronos Crypto.com