Я не понимаю, почему, если downloadQueue пуст, перед добавлением необходимо активировать startNextDownload() URL. (обратите внимание: startNextDownload() завершает программу, если очередь загрузки пуста)
Я не уверен, почему: QTimer: :singleShot(x, y, z) вообще использовался. Насколько я понимаю, это таймер, который активирует слот с задержкой в 0 миллисекунд.
Посмотрев на Qt Assistant, я не смог понять, является ли singleShot однократной настройкой для повторной активации в слот с заданным интервалом в миллисекундах или один раз
Я привык видеть, как оператор 1 выполняется и завершается, прежде чем переходить к работе над оператором 2. Но пытаясь изучить Qt и читая данный пример, я вижу, что SLOT(startNextDownload()) активируется после того, как произошла загрузкаQueue.enqueue(url);. Я пытаюсь понять, почему это работает.
Я новичок в изучении Qt и пытаюсь понять предоставленный Qt пример операции загрузки. В downloadmanager.cpp функция-член имеет следующий вид: [code]void DownloadManager::append(const QUrl &url) { if (downloadQueue.isEmpty()) QTimer::singleShot(0, this, SLOT(startNextDownload()));
downloadQueue.enqueue(url); ++totalCount; } [/code] [list] [*]Я не понимаю, почему, если downloadQueue пуст, перед добавлением необходимо активировать startNextDownload() URL. (обратите внимание: startNextDownload() завершает программу, если очередь загрузки пуста) [*]Я не уверен, почему: QTimer: :singleShot(x, y, z) вообще использовался. Насколько я понимаю, это таймер, который активирует слот с задержкой в 0 миллисекунд. [*]Посмотрев на Qt Assistant, я не смог понять, является ли singleShot однократной настройкой для повторной активации в слот с заданным интервалом в миллисекундах или один раз [/list] Уточнение: Я новичок и в таких примерах: [code]statement1; statement2; [/code] Я привык видеть, как оператор 1 выполняется и завершается, прежде чем переходить к работе над оператором 2. Но пытаясь изучить Qt и читая данный пример, я вижу, что SLOT(startNextDownload()) активируется после того, как произошла загрузкаQueue.enqueue(url);. Я пытаюсь понять, почему это работает.
Я пишу аналогичный класс. Я переопределил метод CompareTo для сортировки объектов по дате в порядке убывания.
public class Employee implements Comparable
{
private Timestamp joinDate;
public Timestamp getJoinDate()
{
return joinDate;
}