Нет, поля класса для такого использовать - неправильно!
Задача - это элемент ФП (функционального программирования). Она должна получать входные параметры через замыкание - а выдавать результат через возвращаемое значение. Изменяемое поле класса не является ни тем, ни другим.
Нарушение этого принципа приводит к тому, что вам теперь нужно беспокоиться о синхронизации разных потоков. А синхронизация потоков в многопроцессорной среде - это не то, чему можно научиться по-быстрому.
Ваша задача является классической задачей Producer-Consumer (поставщик-потребитель). Более подробно решения этой задачи можно увидеть тут: Имплементация Producer/Consumer pattern.
Если коротко - то вам надо либо использовать блокирующую очередь, BlockingCollection - либо BufferBlock из библиотеки TPL Dataflow для асинхронной обработки.
Также вместо задачи-обработчика можно создать ActionBlock и подцепить его к BufferBlock.
Также есть вариант не передавать данные, а создавать новую задачу-обработчик на каждую порцию прочитанных данных, используя однопоточный планировщик задач для обеспечения последовательности обработки. Но внутри такого планировщика все так же будет Producer-Consumer, просто передавать он будет задачи а не данные.