How to make responsive GTK+ applications
 
  Introduction   This weekend I've made a GTK+ application, I've done my best to make it responsive by applying my old Android development experience.   Android make it clear that you should not block UI thread (main thread) not non-UI tasks like:    disk IO (read a file)  network IO (request remote API)  internal SQLite database  intensive computations    Let me quote :   "You should not perform the work on the UI thread, but instead create a worker thread and do most of the work there."   private class MyTask extends AsyncTask... {     protected Long doInBackground(URL... urls) {     // worker thread     }     protected void onProgressUpdate(Integer... progress) {     // ui thread     }     protected void onPostExecute(Long result) {     // ui thread     } }    GTK+  GTK+ is not threadsafe, in the sense all calls to GTK+ should be from a single thread that is the main thread or the UI thread, which seems similar to Android.   We have a class that loads the glade  XM...