У меня есть программа, которая использует несколько потоков (300) для запроса API. В настоящее время он ведет себя как искатель, каждый поток определяет свой следующий вызов веб-API на основе результата вызова API, который он только что обработал, и случайного параметра.Как читать текстовый файл из нескольких потоков C#
Я построил список параметров, которые выберут «случайный параметр» из уравнения и сделают его более эффективным, исключив избыточные вызовы API, возникшие в результате использования этого случайного параметра.
Этот список представлен в виде текстового файла длиной около 8 миллионов.
В идеале, что бы я хотел иметь, это объект чтения потока в моем основном потоке, который был бы потокобезопасным и что все (300) другие потоки будут использовать «getLine» из текстового файла, когда они будут обработаны последний до исчерпания файла.
Я немного потерял то, на что я должен смотреть, любые предложения и ответы будут очень благодарны!
Вы имеете в виду * действительно * есть 300 потоков в вашем приложении? Не прочитав остальной вопрос, я могу сразу сказать, что вы делаете что-то неправильно. Чтобы ответить на ваш вопрос, вы должны посмотреть [ConcurrentQueue] (http://msdn.microsoft.com/en-us/library/dd267265.aspx). –
@ LasseV.Karlsen Да, и 300 потоков - это оптимальное количество потоков с точки зрения того, сколько страниц я могу сканировать в минуту. –
@ LasseV.Karlsen Это похоже на то, что мне нужно, вопрос только в том, столкнулся ли я с проблемой, когда в эту очередь попало 8 миллионов ulongs? –