- Регистрация
- 23.05.2016
- Сообщения
- 1 469
- Благодарностей
- 574
- Баллы
- 113
Привет всем! Подобные решения есть на форуме, но до конца они решили моей проблемы.
Что есть:
1. Есть список (не привязанный к файлу) в котором хранятся распаршенные IDs юзеров
2. Есть список блеклист (привязанный к файлу) в котором хранятся уже заюзанные IDs юзеров.
Какие действия совершаются:
1. Берётся IDs нового юзера из списка.
2. Берётся весь текст из блеклиста
3. Regex(ом) проверяется есть ли наличие нового IDs в блеклисте
4. Если есть, берём новый, если нет, то совершаем действие и заносим в блеклист.
Проблема следующая.
В одном потоке работает всё окей, но когда потоков больше одного, то начинается биздец. В блеклисте появляются дубли и шаблон совершает действия с IDs юзеров, которые уже есть в блеклисте и заносит их по новой с каждого потока.
Думаю, что файл не успевает перезаписываться до того момента, как следующий поток возьмёт из блеклиста данные.
Как я понимаю, нужно перевести всё в C# и залочить файл перед записью. Как это сделать я не знаю. Подскажите, мне, пожалуйста готовый сниппет для решения этой задачи.
Спасибо!
Что есть:
1. Есть список (не привязанный к файлу) в котором хранятся распаршенные IDs юзеров
2. Есть список блеклист (привязанный к файлу) в котором хранятся уже заюзанные IDs юзеров.
Какие действия совершаются:
1. Берётся IDs нового юзера из списка.
2. Берётся весь текст из блеклиста
3. Regex(ом) проверяется есть ли наличие нового IDs в блеклисте
4. Если есть, берём новый, если нет, то совершаем действие и заносим в блеклист.
Проблема следующая.
В одном потоке работает всё окей, но когда потоков больше одного, то начинается биздец. В блеклисте появляются дубли и шаблон совершает действия с IDs юзеров, которые уже есть в блеклисте и заносит их по новой с каждого потока.
Думаю, что файл не успевает перезаписываться до того момента, как следующий поток возьмёт из блеклиста данные.
Как я понимаю, нужно перевести всё в C# и залочить файл перед записью. Как это сделать я не знаю. Подскажите, мне, пожалуйста готовый сниппет для решения этой задачи.
Спасибо!
Последнее редактирование: