Husker du at kalde Close() på den stream du bruger til at skrive med? Hvis du gør det burde programmet blocke indtil filen er lukket.
Hvis der er tale om en metode der bruges af flere tråde så sæt lock(<variable-navn-på-streamen>) {<...>} rundt om kroppen af metoden (så skal du selvf hava streamen i en felt variable).
Under alle omstændigheder (og specielt i den sidste eks.) bør du nok overveje ikke at lukke filen hver gang du har skrevet en linje.
Hvis du har behov for at læse fra filen mens programmet køre kan du sætte nogle parametre i din stream der gør at den godt kan læses, og så kalde Flush() på streamen når du har skrevet.
Jeg kalder både close() på streamen og streamwriteren, men det er heller ikke det der er problemet.
Jeg kalder min funktion som :
1.åbner filen 2. skriver i den 3. lukker streamen
men hvis jeg kalder funktionen flere gange efter hinanden, kan det ske at windows ikke fysisk har nået at lukke filen, hvilket giver en exception. Og det er den jeg ønsker at undgå eller kunne håndterer
Jeg kender ikke intervallet af hvor tit der skrives til filen, det kan være 10 gange på et minut, men ellers kan der gå timer i mellem, derfor vil jeg gerne lukke den
Du behøver ikke kalde Close() på begge dele, men det gør ingen forskel. Desuden behøver du ikke lave en seperat Stream til din fil, du kan blot oprette en System.IO.StreamWriter direkte på filnavnet.
Men du burde ikke havde i den situation da den som sagt burde blocke indtil filen er lukket. Har lige testet det i en console app, hvor jeg skriver 10 gange i en fil og åbner og lukker den hver gang...ingen problemer.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.