So is there any event on which you need to change the label ? if yes the you can first wait for the completion/detection of the event & then perform the Drawing operation. But i think putting the User::WaitForRequest(aStatus); would surely block the whole thread.Either you can separate this listening part in another thread.
Well the best approach in my opinion is to implement an active object for listening to sockets.SInce they are non blocking you can easily then continue with other things in your application while the active object waits for the request completion. You can refer to this thread for more info:
especially the section Using active objects in sockets code