Doncaster have made forward Dany N'Guessan their sixth summer signing.
Shrewsbury have rejected an offer from Burnley for winger Josh Ginnelly.
The 29-year-old will go straight into United's squad for the clash with Crystal Palace on Saturday.
Manager Neil Warnock revealed that Thomas was a long-time target of his.
"He's a player I've tried to sign five times so it's about time I finally got him," Warnock told the club's official website. "He is just what I'm looking for and I want him to come here and enjoy himself.
"He's direct and positive when he's attacking and fits the bill as just what we want."
Former Arsenal trainee Thomas has made over 200 career appearances for QPR, Portsmouth, Charlton and West Brom.