hello…What do you mean by efficient?A 1ms delay is 1ms.
Any software delay is a blocking delay, i.e. the code blocks the CPU from executing any other instructions.
If you want tighter code, you can use
while (–wait);
But that means that wait must be increased for the same time delay.