I've only been to Beijing and Singapore, so I can't speak to Bangkok.
For a long weekend, I would choose Singapore. Beijing is wonderful, but with only a couple of days, there is lots you'd have to skip - if I was in your position I'd be pretty disappointed with only a couple of days there - I'd want a week. Another issue to consider is the cost of applying for a tourist visa that would be needed in Beijing.