Как дождаться завершения работы ThreadPool

338
04 июня 2017, 17:38

Добрый день, подскажите как быть.

Есть программа, которая копирует множество файлов из одного места по сети в другое, очередь файлов на копирование собирается специфическим образом (в графическом интерфейсе человек отмечает множество папок и файлов галочками).

Для реализации самого копирования было решено не изобретать велосипед и воспользоваться классом из интернет

В нем как раз копирование сделано через ThreadPool. Но я не понимаю как управлять этим ThreadPool т.е. как понять что копирование уже завершено? И еще момент - копирование через эти ThreadPool забивает канал и память, компьютер сильно зависает. Как-то можно ограничить эти параметры?

Answer 1

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

Пул потоков в .NET не завершает работу никогда, это служебная часть рантайм-библиотеки, которая доступна всегда, до окончания работы программы.

Я думаю, нет смысла копировать одновременно несколько файлов, т. к. вы упираетесь в производительность системы ввода-вывода. Попробуйте копировать файлы по одному, один за другим.

P. S.: А чем вас не устраивает стандартное копирование через File.Copy? Зачем нужна какая-то библиотека?

P. P. S.: Первое, что я увидел, открыв статью, на которую вы ссылаетесь — событие FileCopyComplete. Почему бы просто не подписаться на него?

READ ALSO
Анимирование невидимости

Анимирование невидимости

привет кто шарит в анимации xaml можно ли как через xaml сделать картинку невидимой Питаюсь так не не выходит

301
Перекрасить Строки DataGrid MVVM

Перекрасить Строки DataGrid MVVM

Работаю с MvvmLightЕсть дата грид который заполняется при помощи вьюмодели :

336
Как записать значение переменной в базу данных Unity?

Как записать значение переменной в базу данных Unity?

Как записать значение переменной счетчика в базу данных sqlite в unity? фрагмент кода:

443
Парсинг текста на C#

Парсинг текста на C#

Есть такая проблема: когда делаю построчный парсингtxt файла при помощи рег

629