Nope, that's done either through HTTP or reading the log file.
I had two Threads, one that owned all the visual components of Rconnect (the default one) and another that was dedicated to monitor a Server connection (things like sending the Status command every X time, checking if the connection is still up, etc.). That second Thread couldn't do things like checking if a Checkbox was checked, or updating a Listview, since those components belonged to the first Thread, and that was annoying me because my procedure that was running in the second Thread had to check and update UI components.
A workaround that Spoonguard did was passing the UI changes or checks that he needed to public variables, having to update those constantly to reflect any changes that might had happen in one or another.
With a Dispatcher I won't need to duplicate that and the code will be better readable. It had an advantage though, since most UI components were saved in variables, changes could be made in the UI and only be saved when requested.