yes, you can do that.
Here is what you should do:
1. Change your class to inherit from CActive.
2. Add your class to active scheduler.
4. Replace "User::WaitForRequest(iReqStatus);" with "SetActive();" call
5. In RunL() method check if iStatus is not an error and if it indicates an error then do nothing (notify user about error).
6. Move all the code below "User::WaitForRequest(iStatus);" line to RunL() method (to part where you checked the value of iStatus member.
You should read more about active objects but if you find some problems with my suggestion just post the error you get.