I have developed a program that takes one picture per hour and sits idle the rest of the time.
Since I have severe power restrictions (the device is powered by solar panels) I wonder if there will be significant power drain differences between the 3 options below (or other alternatives I haven't figured out)
I would think that the the third option takes more energy, simply because. But all three pale in comparison with the energy used just to keep the drives spinning. Don't talk to me about screensavers.
But even so, the screen is the energy hog, and likely other apps running in the background. In other words, I don't know. But I bet it hardly matters except academically.
Definitely use option A. The other two will lock up the CPU and either slow down or completely prevent any other activities (at least on desktop; I assume something similar could happen on mobile.) "Wait" and "repeat" do not yield any time for other processes to occur, they are completely blocking. Sending a message after a particular time interval allows the app to sleep/rest until the next event is due and is not blocking.
I can't think of any instances offhand where "send" is not preferable over "wait" or "repeat". You can add "with messages" to these commands to allow a sliver of time for the engine, but it still isn't as efficient as just sending the message at a later time.
What Jacque said. But she addressed an entirely different , though VERY important issue.
I have no idea how to measure the energy dissipated with any of your three options, as per to your original post, that is, energy. I wonder whether measuring the time it takes to go from 100% charge to 90% with all three of your methods might yield repeatable results. However judicious those methods might be in real life.