Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.02.2017, 22:35   #1
OmegaBerkut
Спокойный псих
Участник клуба
 
Аватар для OmegaBerkut
 
Регистрация: 19.03.2013
Сообщений: 1,538
По умолчанию System.IO.File.Copy() компьютер вешается наглухо

Здравствуйте. Сегодня столкнулся с одной очень не хорошей проблемой ...
Когда указанная функция копирует файл большого размера - компьютер вешается наглухо, даже мышкой невозможно подвигать. Хотя загрузка процессора в норме. Чтение/запись происходят НЕ на системном разделе.
У меня не было таких проблем при побайтовой обработке файлов больших размеров.
Что с функцией Copy ? Какие есть адекватные аналоги ?
На счёт второго вопроса - мне наверное придется через FileStream всё прогонять, ибо это уже серьёзный вопрос.
Подпись ? Не, не слышал ...

Последний раз редактировалось OmegaBerkut; 23.02.2017 в 22:59.
OmegaBerkut вне форума Ответить с цитированием
Старый 23.02.2017, 23:26   #2
New man
Форумчанин
 
Регистрация: 24.01.2011
Сообщений: 774
По умолчанию

Хм, а у вас много оперативы? Похоже на то, что вы копируете файл на том же физическом диске, что и файл подкачки, поэтому скорость обращения системы к "виртуальной" памяти падает, в итоге приложения просто ждут, пока система загрузит значения из памяти в регистры. Ну, и система висит.

Лечится это отключением файла подкачки.
a.k.a. Angelicos Phosphoros
Мой сайт
New man вне форума Ответить с цитированием
Старый 24.02.2017, 01:35   #3
OmegaBerkut
Спокойный псих
Участник клуба
 
Аватар для OmegaBerkut
 
Регистрация: 19.03.2013
Сообщений: 1,538
По умолчанию

New man, оперативы у меня 8 гб. На счёт файла подкачки - не в курсе, туда лазить ещё не приходилось.
Чтение происходит с одного физического диска, запись - на другой диск НЕ на системный раздел.
Подпись ? Не, не слышал ...

Последний раз редактировалось OmegaBerkut; 24.02.2017 в 01:37.
OmegaBerkut вне форума Ответить с цитированием
Старый 24.02.2017, 08:46   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

ну создайте два потока и затем
Код:
source.CopyTo(target)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 24.02.2017, 15:54   #5
New man
Форумчанин
 
Регистрация: 24.01.2011
Сообщений: 774
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
ну создайте два потока и затем
Как я понял, у ТС зависает вся система, комп, то есть. Значит распараллелирование не особо поможет.


Цитата:
Сообщение от OmegaBerkut Посмотреть сообщение
на другой диск НЕ на системный раздел.
И файл подкачки находится на одном из этих двух физических дисков, верно? Попробуйте отключить его, у винды тупая привычка кучу всего, что должно быть в оперативе, записывать в файл подкачки.
8 Гб с лихвой хватит, если, конечно, вы там не разрабатываете на продуктах JetBrains и чем-нибудь подобном.
a.k.a. Angelicos Phosphoros
Мой сайт
New man вне форума Ответить с цитированием
Старый 24.02.2017, 16:56   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Сообщение от New man Посмотреть сообщение
Как я понял, у ТС зависает вся система, комп, то есть. Значит распараллелирование не особо поможет.
Stream, а не Thread.
давно у Thread есть метод CopyTo?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 24.02.2017, 17:07   #7
New man
Форумчанин
 
Регистрация: 24.01.2011
Сообщений: 774
По умолчанию

А, просто неудачность этих терминов (нитей и потоков) запутала.

А чем стримы лучше, чем копирование через IO?
a.k.a. Angelicos Phosphoros
Мой сайт
New man вне форума Ответить с цитированием
Старый 24.02.2017, 18:17   #8
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

ручной контроль разве что.(в том числе размер буфера)
ибо File.Copy уходит внутрь WinAPI:CopyFile.
вообще такие функции обычно виснут если есть проблемы с диском.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 24.02.2017, 18:26   #9
OmegaBerkut
Спокойный псих
Участник клуба
 
Аватар для OmegaBerkut
 
Регистрация: 19.03.2013
Сообщений: 1,538
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
вообще такие функции обычно виснут если есть проблемы с диском
Проблем с диском не обнаружил. Хотя изначально беспокоило то, что судя по звуку винт иногда начинает постоянно парковать головки; но это быстро решается перезапуском компьютера.
Цитата:
Сообщение от New man Посмотреть сообщение
И файл подкачки находится на одном из этих двух физических дисков, верно?
Файл подкачки находится на системном разделе того диска, куда происходит запись.
Цитата:
Сообщение от New man Посмотреть сообщение
Попробуйте отключить его
А что я скажу, когда буду сдавать проект ?
Подпись ? Не, не слышал ...
OmegaBerkut вне форума Ответить с цитированием
Старый 24.02.2017, 18:37   #10
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Сообщение от OmegaBerkut Посмотреть сообщение
А что я скажу, когда буду сдавать проект ?
Дык если бы такая проблема была у всех пользователей этой функции, то это было бы общеизвестно, и ей бы никто не пользовался )
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Error 1 Unable to copy file "obj\Debug\WindowsFormsApplicat ion2 .exe Dr.House69 C# (си шарп) 1 07.05.2014 16:50
RewriteRule webroot to file-system path paska27 PHP 2 14.12.2013 18:05
File System Watcher (TfisFileNotification) maxefficiently Помощь студентам 8 15.02.2011 00:28
класс ввода\вывода System::IO::File Selebro Общие вопросы C/C++ 1 18.10.2008 22:48
Copy File Witaliy Общие вопросы Delphi 4 26.07.2008 13:20