I am wondering what are your experiences and ideas how to resolve following situation:
I have desktop application (written in C#) which collect data from remote hardware device. Issue is very slow response (around 3 seconds from request to getting reply).
How should I design refreshing of UI to create "best" user experience with this state. After click is called update method. Data collected from hardware will change list of displayed items in GUI.
Time between request and updating UI needs to be handled effectively in terms of user experience. What do you recommend?
Make the server request asynchroneous, put the UI in a state which reflects the "waiting" status (simple solution would be to use a modal dialog, maybe with a possibility to cancel the operation), then update when the data is there.
Don't run the update operation single-threaded in the UI thread as this will make your app being marked as unresponsive by Windows.