lock таблицы

rashk1n

Client
Регистрация
03.11.2015
Сообщения
20
Благодарностей
2
Баллы
3
в проекте есть 2 таблицы, одна таблица пересекается в многопотоке, а у 2-ой на каждый поток отдельная привязка. Так вот в отдельно Action'e есть этот код и я заметил, что из выхода этого Action'a, lock на таблицы остается и потоки со 2-ой таблицей работают по очереди. Как сделать, чтобы такого не было? unlock(SyncObjects.TableSyncer) ? или как-то по другому

lock(SyncObjects.TableSyncer)
{
System.Threading.Thread.Sleep(2000);
project.Variables["Path_Profile"].Value = table.GetCell(0,0);
project.Variables["proxy"].Value = table.GetCell(1,0);
table.DeleteRow(0);
System.Threading.Thread.Sleep(2000);

}
 

Nick

Client
Регистрация
22.07.2014
Сообщения
1 963
Благодарностей
797
Баллы
113
А как ты себе представляешь совершенно одновременную работу с таблицей? Несколько процессов не могут одновременно открыть файл на запись и ломать в нём дрова. Если бы ты в каждом поток генерил новое название таблицы, то нет проблем - каждый бы работал со своей одновременно.
 

rashk1n

Client
Регистрация
03.11.2015
Сообщения
20
Благодарностей
2
Баллы
3
А как ты себе представляешь совершенно одновременную работу с таблицей? Несколько процессов не могут одновременно открыть файл на запись и ломать в нём дрова. Если бы ты в каждом поток генерил новое название таблицы, то нет проблем - каждый бы работал со своей одновременно.
так у 2-ой таблицы другой путь к файлу. Подскажи, как менять название таблицы
 
Последнее редактирование:

Moadip

Client
Регистрация
26.09.2015
Сообщения
509
Благодарностей
823
Баллы
93
Так вот в отдельно Action'e есть этот код и я заметил, что из выхода этого Action'a, lock на таблицы остается и потоки со 2-ой таблицей работают по очереди. Как сделать, чтобы такого не было? unlock(SyncObjects.TableSyncer) ? или как-то по другому
Со второй таблицей работа идет через lock или нет?
Блокировка не может "оставаться", и уж тем более сама применяться после использования на одной таблице, к другой.
Вся суть блокировки в том, что к блоку кода внутри lock имеет доступ только один поток, после того как этот кусок выполнен, дальше все выполняется как обычно.
И если дальше в многопотоке идет доступ например к таблице без lock, то никакой очереди не должно быть.
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 707
Баллы
113
Паузы в коде лишние. От этого и вопросы.
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)