No, check millis() to determine when to read the button pin again.
You can have a look into my MoToButtons.h lib. The processButtons() method is the central method to handle the buttons. Maybe it's a bit more complex, because it can handle up to 32 buttons in one instance, but it shows the principle. As you can see at the beginning of the method, millis() is used to determine when the buttons should be read again and processed. processButtons() can - and should - be called with every loop() and is not blocking - there is no delay. You don't need one.