IR Sterung Mit Interrupts

Sagt mal... könnte man die delay() Funktion nicht z.B. durch diese Funktion ersetzen? oder meint ihr das wäre nicht sonderlich effektiv?

void wait_mseconds(long msek){
    unsigned long currentMillis = millis();
    long previousMillis = millis();
    
      while(currentMillis - previousMillis < msek){
        currentMillis = millis();
      }