- Регистрация
- 22.09.2015
- Сообщения
- 6 833
- Благодарностей
- 1 275
- Баллы
- 113
Многопоток чтоб его...так а зачем лок со списком? просто привяжи список к файлу и бери с удалением, вот и весь лок... я с локами так себе, тож не очень понимаю их )
Многопоток чтоб его...так а зачем лок со списком? просто привяжи список к файлу и бери с удалением, вот и весь лок... я с локами так себе, тож не очень понимаю их )
так я так в много потоке и делаю... привязываю к txt и вперед, норм работаетМногопоток чтоб его...
в многопотоке осуществляется запись - лок необходим
в продукты на продажу всё же стоит внести. Не у всех может оказаться твой запас везения)
реально ниразу не юзал лок для списков и таблиц... не было проблем, тьфу тьфу тьфу ...
lock(SyncObjects.TableSyncer){
// берем первую строку с удалением и кладем в переменную
project.Variables["VariableName"].Value = project.Lists["ListName"][0].Trim();
project.Lists["ListName"].RemoveAt(0);
}
// тут что-то делаем с полученными из списка данными
// возвращаем строку в конец списка
lock(SyncObjects.TableSyncer){
string proxy = project.Variables["VariableName"].Value;
project.Lists["ListName"].Add(proxy);
}
И все же... Почему, если в последней колонке нет данных (пусто), то данный сниппет получает данные, удаляет строку и выходит с ошибкой. Если вписать в ячейку что то, например 0, то все ок.И еще один момент. Почему то не берет строку если в ней имеются в конце пустые две ячейки, без значений. Если в них что то вставить. то все в порядке.
Выполнение действия CSharp OwnCode Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
Подскажите, как реализовать данное действие с поиском строки по таблице на соответсвие переменной {-Variable.USER_NAME-} и вставлять в нее данные из переменных?
- // возвращаем строку в конец списка
- lock(SyncObjects.TableSyncer){
}
- project.Tables["mytable"].AddRow(project.Variables["login"].Value+"\t"+project.Variables["password"].Value);
IZennoTable table = project.Tables["НАЗВАНИЕ ТАБЛИЦЫ ИЗ КОТОРОЙ НАДО ВЗЯТЬ"];
string str = project.Variables["НАЗВАНИЕ ПЕРЕМЕННОЙ КОТОРУЮ НАДО ВЗЯТЬ"].Value;
string row;
for (int i = 0; i < table.RowCount; i++) {
row = string.Join("", table.GetRow(i));
if (row.Contains(str)) {
//table.DeleteRow(i); i--; // раскомментировать, если строку нужно брать с удалением
return i;
}
}
да.Т.е. ты берешь, ищешь в таблице значение и потом по этому значению получаешь строку?