Turn him away or put him to work. One of the things that happens in this type of situation is that you no longer have needs from the person. The entire relationship is based on what HE needs — not what you need. The next time he barges in I would explain that it isn’t convenient. Don’t let him in — and assign him a specific time time-period he can visit. If you don’t set the boundaries, he won’t. Yes you will feel guilty doing this, but if you don’t — the resentment will always feel worse. This is a general principle. Let yourself cope with the guilt you feel as it will ALWAYS be easier to cope with than the resentment. Alternatively, you can let him stay but ask him to help you with some chores. Tell him it isn’t a good time for him to visit, but he is welcome to help you with a chore for a half hour. I would then assign him something specific to be done: Weed the back yard; wrap the newspapers from recycling; sweep the garage floor. I know this sounds odd. However, people like your uncle don’t have empathy for other’s needs. You’ll have to both set boundaries and request him to do something for you if you want to manage him.
This will no doubt irritate him but that is the point. He doesn’t have enough anxiety about the right things and is only thinking of himself. The irritation is designed to nudge him in the direction of change. By you increasing your boundaries and specific needs from him he will have to cope with an internal struggle: Does he want a relationship with you enough he can deal with limitations and other people’s needs? If he does, a more authentic relationship is possible. If he doesn’t, he is likely to stop showing up. If you don’t make changes in how you interact with him, he is not likely to change on his own.