Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
Заблокирован

Почему уже закрыт StreamWriter

19.08.2011, 11:03. Показов 1584. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Помогите разобраться со следующим вопросом.
Есть код:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
class LogClass
    {
        public static string LogDir = @"RPVClient\Log";
 
        private StreamWriter _FileLog;
        public StreamWriter FileLog
        { get { return _FileLog; }
            private set {
                if (_FileLog != null)
                { _FileLog.Close(); }
                _FileLog = value;
            }
          }
 
        public LogClass():this(""l)
        { 
        }
 
        public LogClass(string AFullFileName)
        {
 
            if (AFullFileName == string.Empty)
            {
                AFullFileName = GetFullFileName();
            }
 
            FileLog = new StreamWriter(
                new FileStream(AFullFileName, FileMode.Append, FileAccess.Write),
                Encoding.Unicode);
            FileLog.AutoFlush = true;
            Append(string.Concat("--------------- ", DateTime.Now.ToString(), " ---------------"));
        }
 
        ~ LogClass()
        {
            FileLog.Close();           
        }
        
 
        public string GetFullFileName()
        {
           return "blah";
        }
 
        public void Append(string AText)
        {
                FileLog.WriteLine(AText);
        }
 
    }
Используется класс следующим образом:
при старте программы создается экземпляр и существует все время работы программы.

Проблема: когда программа закрывается и вызывается ~ LogClass(), то происходит Exception
ObjectDisposedException с описанием "Доступ к закрытому файлу невозможен".
Когда и кто закрыл файл?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.08.2011, 11:03
Ответы с готовыми решениями:

Почему при открытии проекта в редакторе кода уже написан код
Такая проблема создаю Project, а там уже какойто скрипт набит! Как исправить? Первое изображение - как у меня (сделал принтскрин из моего...

Почему StreamWriter не все записывает?
Здравствуйте. Есть код, который "обходит" все файлы и директории и пути к ним записывает в файл Но почему то записывается фиксированное...

Почему закрыт объект RecordSource?
мне нуижно запросом выбрать некоторые значения из таблиц, потом каждое из этих значений занести в другие таблицы. С запросом проблем не...

1
 Аватар для Unril
826 / 717 / 110
Регистрация: 06.10.2010
Сообщений: 825
Записей в блоге: 1
19.08.2011, 11:41
В следующий раз заключайте код в соответствующий теги (CSHARP)! Это же очевидно!
МСДН пишет:
Метод Finalize должен освобождать все ресурсы, которые удерживаются данным объектом. Он также должен вызвать метод Finalize базового класса объекта. Метод Finalize объекта не должен вызывать метод каких-либо объектов, кроме базового класса этого объекта. Это объясняется тем, что при вызове других объектов, например, в случае закрытия среды CLR, они могут быть очищены одновременно с вызывающим объектом.
Иначе говоря, в момент вызова финализатора, FileStream уже давно финализирован. Нельзя освобождать управляемые ресурсы в финализаторе, можно только неуправляемые.
Используйте IDisposable, если нужно явно очистить ресурсы.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.08.2011, 11:41
Помогаю со студенческими работами здесь

Почему не роботает уже замучался(
Помогите почему не роботает уже замучался( Написал крестики нолики, всё роб захотел вынести поле в функцию 2 вечера после роб мучаюсь не...

Почему домен делегируется уже 5-й (!) день? на хостинге netter.ru
Срочно нужно было сделать домен и хостинг. Времени на выборы да подборы не было совершенно. Вот я взял один их хостинов в ТОП 3 гугла,...

Почему Гугль сайт не видет уже около 3 мес?
Обьясните почему гугл сайт не хочет замечать сайту уже 3 мес! Сайт dezine-plus.ru

Почему прошло уже 2 недели а сайт не про индексировался
Вот, жду уже 2 недели, а сайт не индексируется, пишет что "Сайт успешно добавлен в очередь на индексирование" Слышал что сайты с...

Только купил,уже два раза завис.почему?
Intel Core i5-3470 box w/cooler ASUS LGA1155 P8H77-V LE H77 Память DIMM DDR3 4096MBx2 PC12800 1600MHz Corsair XMS3 9-9-9-24 XMP БП...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru