Mam metodę, która jest często wywoływana z wielu wątków. Obejmuje zapis na dysku przy użyciu await FileIO.WriteTextAsync
. Działa to dobrze, gdy jest wywołany z jednym wątku, ale gdy zacznę robić to w wielu wątków, otrzymuję ten błąd:Aplikacja Metro FileIO.WriteTextAsync Wiele wątków
The process cannot access the file because it is being used by another process.
wiem, co oznacza, że błąd, ale nie jestem pewien jak to działa dookoła tego. Zazwyczaj utworzę instrukcję lock(object)
, aby upewnić się, że dostęp do pliku ma tylko jeden wątek na raz. Jednak jest to metoda asynchroniczna i jako taka nie mogę użyć operatora await
w treści instrukcji lock(object)
.
Proszę doradzić, jak sobie z tym poradzić.
Cóż Stephen, to nic dziwnego, dlaczego masz tak dużą reputację. Rozwiązanie i twój osobisty dotyk były fantastyczne. Mój proces przebiega teraz idealnie. Użyłem również twojej sugestii, aby wzmocnić moją klasę logowania, która cierpiała na podobny problem. Dziękuję za to! – c0D3l0g1c
Nie ma za co! –