Принцип действия код выше. Заходит строитель на стройку и видит кучу кирпичей берет один кирпич и несет его нормально на склад, пока возвращался подумал а почему бы не взять 2 кирпича двумя руками в каждую по одному подошел к куче и взял 2 кирпича, задумался и сходил 2 раза на склад с кирпичами в руках, взял 4 кирпича 2 в каждую ногу 2 в каждую руку понес и опять задумался и сходит 4 раза на склад, как сделать чтобы строитель брал например по 2 кирпича в каждую руку и нормально относил на склад, затем возвращался еще за 2. код ищет строку в файле сверяет её с переменной "Target" и выводит на экран. проблема с потоками если задать потоков 1 все будет нормально, если 2 то код будет обрабатывать одну и туже строку 2 раза если 3 то тоже ... и так далее ... как решить проблему?) сколько раз уже задавал вопрос где только не задавал никто толком не ответил если и ответил то не помогло. |
|
У Вас проблема в том, что каждый поток заново перебирает весь набор строк. Нужно чтобы перебор работал независимо в каждом потоке. Для этого проще всего использоваться перечислитель массива
чет я не улавливаю разницы с предыдущим ответом.. поясните разницу, пожалуйста - хочется разобраться
(23 Фев 13:02)
Дмитрий Ложкин
По сути - никакой. Меньше кода, больше слов. Учитывая заданный вопрос, мне показалось, что приведенного пояснения будет недостаточно.
(23 Фев 15:18)
ganouver
|
|
лочить надо просто. почитайте про lock(){} и надо не форыч использовать, а енумератор и его лочить и при его помощить коллекцию в потоках перебирать.
примерно так, дальше допилите как надо по этому примеру. надеюсь, помог.. не проверял только - корпаратив был, не до этого :) |
Быть может вам не отвечают потому, что вам это нафиг не нужно? Чего только стоит пример вашего кода и описание на кирпичах :D