Ho un metodo che viene chiamato frequentemente da più thread. Implica la scrittura su disco utilizzando await FileIO.WriteTextAsync
. Questo funziona bene quando viene chiamato da un unico filo, ma una volta che mi metto a fare questo in più thread, ottengo questo errore:Metro App FileIO.WriteTextAsync Multiple Threads
The process cannot access the file because it is being used by another process.
So cosa significa l'errore, ma non sono sicuro di come lavorare intorno ad esso. Normalmente, vorrei creare una dichiarazione lock(object)
, per garantire che il file sia accessibile solo da un thread alla volta. Tuttavia, questo è un metodo asincrono e in quanto tale non è possibile utilizzare l'operatore await
nel corpo dell'istruzione lock(object)
.
Si prega di avvisare su come gestire questo scenario.
Bene Stephen non c'è da meravigliarsi perché si ha una reputazione così massiccia. La soluzione e il tuo tocco personale sono stati fantastici. Il mio processo funziona perfettamente ora. Ho anche usato il tuo suggerimento per rinforzare la mia classe di disboscamento che soffriva di un problema simile. Grazie per quello! – c0D3l0g1c
Prego! –