|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
27.10.2015, 15:21 | #1 |
Форумчанин
Регистрация: 13.08.2015
Сообщений: 193
|
Блокирование файла
Есть файл и есть 10 запущенных копий программы, программы периодически обращаются к файлу читают данные и изменяют его, нужно сделать так чтобы файл блокировался когда к нему обратилась одна программа, что то делает с ним и когда ей не нужен то тогда чтобы могла к нему обратится другая программа. Как так сделать?
|
27.10.2015, 15:25 | #2 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
mutex что ли?
А зачем 10 копий? Не проще 10 потоков?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
27.10.2015, 16:31 | #3 |
Форумчанин
Регистрация: 13.08.2015
Сообщений: 193
|
Так уже сделано что каждый раз нужно копию проги запускать. В потоках лучше было бы.
Наврятли мутекс. В MFC было вроде можно файл открыть с флагом что ни одна другая программа не могла его использовать, потом закрыть и другие проги могут его использовать. Что то такое было, читал давно. От интересно в С# есть такое? Чтобы одна прога открыла файл и он заблокировался. |
27.10.2015, 16:36 | #4 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Так вроде по умолчанию так и есть. Как вы файл открываете?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
27.10.2015, 17:19 | #5 |
Форумчанин
Регистрация: 13.08.2015
Сообщений: 193
|
Та еще не пробовал, щас попробую, мне нада чтобы она и читать не могла.
|
27.10.2015, 18:06 | #6 | |
Форумчанин
Регистрация: 18.01.2012
Сообщений: 975
|
Цитата:
Благодарить в репутацию. Проклинать — туда же
|
|
27.10.2015, 21:39 | #7 | |
Форумчанин
Регистрация: 13.08.2015
Сообщений: 193
|
Цитата:
Вот так делаю Код:
Проще File.WriteLine и File.ReadLine использовать чем по байтах записывать. Нада мутекс попробовать мб. там попроще будет, неохота побайтово читать и записывать, это головняк. |
|
27.10.2015, 21:47 | #8 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Мутекс не пишет и не читает файл. Он используется для синхронизации.
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
27.10.2015, 21:48 | #9 | ||
Форумчанин
Регистрация: 13.08.2015
Сообщений: 193
|
Он для синхронизации между потоками используется вроде? А мне нужно между процессами, нужно симафоры использовать.
Цитата:
Цитата:
Последний раз редактировалось ninja2; 27.10.2015 в 21:54. |
||
27.10.2015, 21:56 | #10 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
А не важно какому процессу потоки принадлежат - одному или разному - мьютексу без разницы
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Блокирование события | Gagapsha | JavaScript, Ajax | 5 | 19.02.2014 18:06 |
Блокирование файла | Balabek | Общие вопросы C/C++ | 10 | 20.07.2012 14:27 |
Блокирование ALT+F4 | Killbrum | Win Api | 5 | 14.03.2009 12:23 |
Блокирование клавиатуры | Milly | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 1 | 18.10.2007 19:15 |
блокирование функции | Fireleo | Win Api | 5 | 29.07.2007 17:04 |