Работа с таблицей

one

Client
Регистрация
22.09.2015
Сообщения
6 840
Благодарностей
1 275
Баллы
113
Извечная проблема при моногопотоке в работе с таблицами. Потерял ссылку на снипет, где то был подобный на форуме. Может кто напомнит\подскажет.

До 15й страницы данного раздела дошел и ничего, но помню точно что было выложено или кто то мне давал. Метод часто используемый.

Есть файл-таблица с данными аккаунтов username;password. Нужно взять строку с удалением, значения положить в переменные и записать строку обратно в конец таблицы. Процесс должен быть залочен для многопотока.
 
Последнее редактирование:

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 129
Баллы
113
C#:
IZennoTable table = project.Tables["Table"]; // таблица проекта
int rowNum = 0; // номер строки, которую брать
lock (SyncObjects.TableSyncer) {
    string[] cells = table.GetRow(rowNum).ToArray();
    project.Variables["username"].Value = cells[0];
    project.Variables["password"].Value = cells[1];
    table.DeleteRow(rowNum);
    table.AddRow(cells);
}
 
  • Спасибо
Реакции: Igorii и one

one

Client
Регистрация
22.09.2015
Сообщения
6 840
Благодарностей
1 275
Баллы
113
Спасибо! То что нужно! Только вот одного не могу понять, в чем причина? Что экшенами, что снипетом запись в файл происходит с задержкой в секунд 5 что не может настораживать в работе многопотока.
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 129
Баллы
113
Работа с таблицей проекта (удаление/добавление данных) происходит практически моментально, только сам файл обновляется с задержкой (время зависит от железа) и в твоем случае это ни на что не влияет.
 

one

Client
Регистрация
22.09.2015
Сообщения
6 840
Благодарностей
1 275
Баллы
113

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