I can thank someone for a great answer or question by upvoting, is there some way to thank someone for an edit or for protecting a question?
It depends on what your goal is:
If it is to simply make the person feel better/appreciated, you can thank them on chat - I agree with Gilles's comment above that a "Thank you" comment is just noise.
If you wish to do it as an act of positive reinforcement, as Keen said, there likely isn't any need to use your thanking upvote as direct reward feedback anymore for this kind of user.
If it is a wish to grant them a more "material" benefit than a mere good word, you can always seek out an older post by that user which seems quality enough to deserve an upvote but you didn't upvote before (may be a tag you don't follow closely).
Just make sure not to upvote any random post that doesn't deserve upvotes - but for a kind of user who would provide this helpful edit, I'd wager it's not very hard to find a good post of theirs that deserves it.
It will not be clearly associated with your expressing thanks to them communications wise (unless you also comment on chat), but an anonymous gift is (sometimes|often) better than named one; and see the last bullet point re: no need for positive reinforcement.
You're looking to specifically reward someone for an edit or protect? That's not really feasible. The system does reward low-rep users who submit accepted edits, but that doesn't sound like what you're looking for. The system isn't built to reward more abstract actions people can take to contribute to the site.
By the time you have the rep to protect or edit questions, you're already a pretty devoted member of the community, so it's assumed that your use of those abilities doesn't require a reward mechanism.