Копируем много файлов за раз

так, в моём новом проекте мне нужно иметь дело с копированием сотен больших файлов за раз - короче набивать папку музыкой, если это делать в основном потоке, то программа зависает до того момента, как файлы не скопируются...вывод: искать решение!

Итак основным решением в Qt с самого начала был класс Qthread его реальное применение в боевом проекте можно глянуть тут

Задача сводится к простому - Подготовить класс и пульнуть его во отдельный поток. Пуляем его так:

1. Создаём экземпляр нашего класса

Код CPP-QT:
  1. ThreadFileCopy* tCopy = new ThreadFileCopy();
  2. tCopy->setFileList(files.toList());
тут мне надо было передать список файлов из QML поэтому ещё и добавил отправку списка файлов который приходит в QList

2. Создаём сам thread

Код CPP-QT:
  1. QThread* thread = new QThread;
3. Соединяем сигналы слоты:

Код CPP-QT:
  1. connect(thread, SIGNAL(started()), tCopy, SLOT(proccess()));
То есть при запуске ветки у нас выполнится функция proccess в неё, что само сабой разумеющиеся надо и пихать весь функционал.

4. ну и запускаем всё это дело:

Код CPP-QT:
  1. tCopy->moveToThread(thread);
  2. thread->start();
Особо хочу подчеркнуть что это только начало и ветку надо бы уметь останавливать и прочее и тому подобное, но для того, чтобы понять с чем едят я удмаю хватит.
Комментарии (0)

Нет комментариев. Ваш будет первым!

Copyright 2016-2024 NeoChapay