I don't know your specific application's needs, but if my user doesn't want to wait for normal processing (fooling around with the X), then he/she probably doesn't want to commit the transaction either. Your original post said , "update", but anything within the transaction is taken as a group or the group is not taken with a Rollback.
If it really is just a select, then why do you care about the X ?
Begin Transaction
Select * From MyTable
Commit Transaction (if window is still alive, else rollback)
...is valid anyway.