05-30-2014, 05:18 PM -
There's a reason why it's gotten slower. The way we did it before was just plain wrong. The Windows UI libraries are written in a way that they tolerate a lot of abuse before crashing. You're not supposed to update it from multiple threads but it won't crash in most instances unless you update the same controls.
Other OSs UI toolkits are a little more sensitive to this and so we had to queue the log message updates onto the message queue for the main thread. The additional locking made the UI a lot less responsive under Windows. We will fix this in the future (probably by not using a listctrl and making MTBuffer version that is an actual ringbuffer instead of a linear buffer with a synchronization point when it reaches the end)
Other OSs UI toolkits are a little more sensitive to this and so we had to queue the log message updates onto the message queue for the main thread. The additional locking made the UI a lot less responsive under Windows. We will fix this in the future (probably by not using a listctrl and making MTBuffer version that is an actual ringbuffer instead of a linear buffer with a synchronization point when it reaches the end)