⬛️⬛️⬛️⬛️⬛️⬛️⬛️⬜️⬜️⬜️⬜️⬜️⬜️⬜️⬜️
for each byte in largeDataPacket. // megabytes
{
UpdateStatusBarOnScreen() // takes a millisecond or two
SendByteToDevice() // takes microseconds
}
The result was that sending the entire packet took about 30 minutes to progress a status bar a few hundred pixels across the screen, and only about 10 seconds to actually send all the data to the device.