Finding the cause of a UI freeze with dotTrace
In this section, we will be using dotTrace to hunt down the reason for a UI freeze so that we can fix it. Again, to save time, we will use a project that has already been provided for you. Obtain the book's source code from the URL specified in the Technical requirements section. In the source code for CH05
, you will find a project called CH05_BatchFileProcessing
.
This project opens a number of text files specified by the user and then reverses each of the strings it finds. When the user clicks on the Process Files button, a separate BackgroundWorker
thread is started that runs on a separate thread. In the left-hand corner, the progress of file processing is displayed. This changes to All files were successfully processed when done. However, a problem exists whereby the UI freezes while the files are being processed.
To find the source of this UI freeze and fix it, we are going to use timeline profiling, which is available using...