In the case of dynamically terminating a solution. You might decide that if the last 100 iterations amount to nothing but bashing your head against the wall, you might as well terminate. This termination criteria requires no assumptions on your part re: how many iterations are needed or how long an algorithm should run.
So, one solution may terminate after 2 minutes and 1000 iterations, another after 30 secs and 1500 iterations. Clearly, those problems will be of drastically different size and constraint complexity, but both were terminated when the last 100 iterations were detected as not giving any real improvement. They terminated when they were considered “solved”.