|
0 / 0 / 0
Регистрация: 22.02.2016
Сообщений: 2
|
||||||
Блокировка в потоке08.03.2017, 18:53. Показов 772. Ответов 1
Имеется некий класс с кодом. Создаю несколько потоков. После запуска программы в коде сериализации строке создания файла появляется исключение:
"Необработанное исключение типа "System.IO.IOException" произошло в mscorlib.dll Дополнительные сведения: Процесс не может получить доступ к файлу "xxx\File.dat", так как этот файл используется другим процессом." Что не так? Программа должна быть написана с использованием блокировки кода сохранения объекта, без обработчиков исключений.
0
|
||||||
| 08.03.2017, 18:53 | |
|
Ответы с готовыми решениями:
1
Блокировка клавиши при нажатии в одной форме и блокировка в другой, третьей Как получить значение переменной созданной в потоке, в другом потоке? Управление потоками. Изменение значения label (созданного в потоке 1) в потоке 2 |
|
Администратор
|
|
| 08.03.2017, 19:17 | |
|
tembl4, исключение происходит потому что два потока одновременно пытаются работать с одним файлом. Блокировка (lock) не помогает потому что _lock это локальная переменная и у разных потоков она будет разной. Поэтому оба потока получают свою блокировку. Исправить ошибку можно сделав _lock static полем класса MyClass.
Также если нужно чтобы MyClass был сериализован два раза, то нужно заменить вызов File.Create("File.dat") на new FileStream("File.dat", FileMode.Append, FileAccess.Write, FileShare.None)
1
|
|
| 08.03.2017, 19:17 | |
|
Помогаю со студенческими работами здесь
2
GDI+. Почему в отдельном потоке картинки сохраняются как белые прямоугольники, а в основном потоке - всё Ок? Не могу создать поток( Нужно чтобы функция запускается в потоке и работала там пока не закроем в потоке) Элементы управления, созданные в одном потоке, не могут быть родительскими для элемента управления в другом потоке Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2.
Данный документ берёт данные из другого нетипового документа. . .
|
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
|
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать программный контроль на предмет проведения документа. . .
|
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
|
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: при создании документов установить период списания автоматически. . .
|
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2.
Задача: вывести данные из ТЧ нетипового документа. . .
|
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению.
На форме документа создается. . .
|