Progetto su FrameWork 2.0 (no StringBuilder.Clear)
In un timer controllo regolarmente una stringa LogFile, letta da un file esterno... se non si verificano certe condizioni (raramente) la inserisco in OldLogFile ( OldLogFile.Append(LogFile) ) e la aggiungo alla stringa LogFile nella lettura successiva:
codice:
Static OldLogFile As New StringBuilder("")
'codice che legge il LogFile successivo.....
If OldLogFile.Length > 0 Then
Debug.Print("OldLogFile è maggiore di 0 --------------------")
Debug.Print(OldLogFile.ToString)
Debug.Print("-----------------------------------------------")
LogFile = OldLogFile.ToString & LogFile
'ne ho messe due per prova, ovvio ne basterebbe una
OldLogFile.Remove(0, OldLogFile.Length)
OldLogFile.Length = 0
End If
Ovviamente dopo averla aggiunta la annullo, pronto per un eventuale nuovo inserimento.
codice:
'non si verificano determinate condizioni
'messe per sicurezza, in effetti sono un doppione, ma non servono a niente :confused:
OldLogFile.Remove(0, OldLogFile.Length)
OldLogFile.Length = 0
OldLogFile.Append(LogFile)
Ebbene... OldLogFile non si annulla... ad ogni nuovo inserimento le stringhe LogFile continuano ad aggiungersi allo StringBuilder, che si allunga sempre di più. 
Deve essere una sciocchezza, ma non la vedo...
Nota: la lettura avviene ogni secondo... gli eventi non si verificano ogni 10 -15 secondi, per cui il LogFile che "appendo" è normalmente "fresco", cioènon è un LogFile a cui ho aggiunto OldLogFile.