Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Moderatore di Windows e software L'avatar di URANIO
    Registrato dal
    Dec 1999
    residenza
    Casalpusterlengo (LO)
    Messaggi
    1,290

    using con file

    Sto sbagliando qualcosa?

    Ho un servizio che fa delle operazioni e poi scrive un semplice log con questa funzione

    codice:
            Using Logfile As IO.FileStream = IO.File.Open(GetLogFilename(), IO.FileMode.Append)
                Using mWriter As New IO.StreamWriter(Logfile)
                    mWriter.WriteLine(messaggio)
                End Using
            End Using
    Dopo un pò(2 giorni) è andato in errore dicendo che il file è bloccato da un altro processo.
    Teoricamente lo using chiude il file ogni volta.(ed il primo using dovrebbe essere pure inutile)
    Sto sbagliando qualcosa?

  2. #2
    Non è che magari chiami quella funzione da due thread diversi?
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Moderatore di Windows e software L'avatar di URANIO
    Registrato dal
    Dec 1999
    residenza
    Casalpusterlengo (LO)
    Messaggi
    1,290
    Originariamente inviato da MItaly
    Non è che magari chiami quella funzione da due thread diversi?
    Si, ma consecutivi, non c'è concorrenza d'accesso.
    Per ora ho banalmente modificato la cosa in questo modo:
    codice:
                Using mWriter As New IO.StreamWriter("il file",true)
                    mWriter.WriteLine(messaggio)
                End Using
    Ora è sicuro al 100% che l'accesso al file viene chiuso.

  4. #4
    Originariamente inviato da URANIO
    Si, ma consecutivi, non c'è concorrenza d'accesso.
    Io comunque ci piazzerei un lock e coglierei l'occasione per verificare se l'accesso è effettivamente sequenziale, è facile che sfugga qualcosa quando si hanno thread in giro...
    Amaro C++, il gusto pieno dell'undefined behavior.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.