У вас как мне кажется плохо с понимаем где находится узкое место вашей задачи: многопоточность вам никак не поможет потому что у вас основное время это операции ввода/вывода.
Данил, Так не надо, создание таких объектов это дорогая операция, по идее если объект не умирает, а просто срывается из от рисовки, тоего нужно просто активировать.
Denis, в современном мире самое дорогое это работа человека, одно дело помочь коллеге в сложном и интересном вопросе, другое читать вопросы из начальной школы.
zlodiak, тут смотря что понимать под корутиной, если классические сопрограммы, то они выполняются в том же потоке, блокируя исполнение остальных частей, однако в современных языках стараются делать так что бы корутины не блокировали основной поток, причем поскольку создавать отдельный thread на корутину дорого, то идут на различные ухищрения.