Is there a name for this pattern? I've written this kind of thing a few times in JavaScript and recently found myself writing it in C#. Thing is, I expect this has already been implemented in a library somewhere I didn't know what to look for. In pseudo code it's something like this: var referenceToPreviousRequest = null; if (null != referenceToPreviousRequest) { referenceToPreviousRequest.cancel(); } referenceToPreviousRequest = setTimeout(function() { //The thing I ultimately want to do }, 1000 /*The delay after the last request*/); Typically I use this kind of code in client side JavaScript, for delaying an AJAX request until a certain amount of time after the last user input, e.g. searching.