The other problem is dogs have pretty much no memory at all. This is why they're smart enough to know to wait until you're gone to dig that half-eaten burger out of the trash, but not smart enough to clean up the evidence after the fact.
So if the rewards/punishments aren't immediate, don't bother. If they do a good thing (like sit on command) and you immediately give them a treat, they associate the sitting with the treat and are more inclined to do it next time around. If they do a bad thing (like try to fit a cat's head in their mouth) and you immediately give them a punishment (like playing an Insane Clown Posse song), they associate cat bullying with excruciating pain and are more likely to stop.
So how long is too long to wait to punish your dog? How about one second?
That's right; studies have shown that even half a second delay in punishing (or rewarding) a dog has a noticeable effect on how fast they learn. So when you get home two hours after he's butchered your finest gaming computer, that is as far gone from his mind as ancient Roman history. He thinks that you're yelling at him for running up to greet you when you get home.
"He knows what he did," you might say. "Just look at him, he looks guilty as hell!"