docs: private void loadDataAsynchronously(
              @NonNull final Task<DataType, KeyType, ViewType, ParamType> task) {
          threadPool.submit(new Runnable() {
  
              @Override
              public void run() {
                  if (!isCanceled()) {
                      while (!notifyOnLoad(task.key, task.params)) {
                          try {
                              Thread.sleep(100);
                          } catch (InterruptedException e) {
                              break;
                          }
                      }
  
                      task.result = loadData(task);
                      Message message = Message.obtain();
                      message.obj = task;
                      sendMessage(message);
                  }
              }
  
          });
      }