I frequently use Tasks to assemble data and place it into the queue using STRPRINT. Many times this data is being assembled inside a FOR/NEXT loop using indexed fields (like a database table inside Do-more). When the queue gets full, then I will set a bit to indicate that I have more data coming, then call the code block that sends out the data. As soon as I have finished streaming out the queue, then I will call the Task to continue where it left off and fill the queue again.
Rinse, Lather, Repeat...