View previous topic :: View next topic |
Author |
Message |
jksgfv
Joined: 21 May 2006 Posts: 2
|
(Separately) Posted: Sun May 21, 2006 16:30 Post subject: Панели в отдельных потоках |
|
|
Можно ли сделать так, чтобы когда пытаешься залезть на недоступный сетевой диск, "плохую" виндовую шару и т.д., чтобы "подвисал" не весь командир, а только активная панель? Т.е. чтобы активная панелька думала себе сколько захочет, а в другой в это время можно было чего-нибудь делать.
Есть ли вообще такая возможность у командира? Если нет, то возможно ли появление таковой в будущем?
! | Avada: | Перемещено из Секретов и советов в Общие вопросы. | |
|
Back to top |
|
 |
CaptainFlint

Joined: 14 Dec 2004 Posts: 6193 Location: Москва
|
(Separately) Posted: Sun May 21, 2006 17:42 Post subject: |
|
|
Увы, нет. Где-то на оф. форуме это обсуждалось, Гислер сказал, что он исследовал этот вопрос, и выяснил, что при обращении к сетевому ресурсу винда подвешивает всё приложение целиком, а не только поток, запросивший этот ресурс. _________________ Почему же, ё-моё, ты нигде не пишешь "ё"? |
|
Back to top |
|
 |
jksgfv
Joined: 21 May 2006 Posts: 2
|
(Separately) Posted: Sun May 21, 2006 18:14 Post subject: |
|
|
Ну пущай тада засунет панельки в отдельные процессы! =]
А всё-таки жаль... |
|
Back to top |
|
 |
Стас Агарков

Joined: 05 Feb 2007 Posts: 130 Location: Белгород
|
(Separately) Posted: Sun Apr 01, 2007 20:29 Post subject: |
|
|
Бывает, что медленно считывается список файлов с флешки или с CD/DVD-ROM, если, например, он сильно поцарапанный. При этом весь TC блокируется. Например, при работе с FTP во время перехода в каталог, то блокируется весь TC. Каждой панели (каждой вкладке) выделить отдельный поток, думаю, не помешает. |
|
Back to top |
|
 |
CaptainFlint

Joined: 14 Dec 2004 Posts: 6193 Location: Москва
|
(Separately) Posted: Sun Apr 01, 2007 20:38 Post subject: |
|
|
Стас Агарков wrote: | Каждой панели (каждой вкладке) выделить отдельный поток, думаю, не помешает. |
Это невозможно. Есть проблемы с многопоточностью в различных функциях: FS-плагины, архиваторы и архиваторные плагины... Например, если в двух панелях открыть одновременно RAR-архивы, и это открытие будет обрабатываться отдельными потоками, то содержимое архивов будет отображаться некорректно: два потока "перепутают" данные друг друга - это проблема библиотеки распаковки unrar.dll. _________________ Почему же, ё-моё, ты нигде не пишешь "ё"? |
|
Back to top |
|
 |
GeNtlE
Joined: 16 Dec 2004 Posts: 141 Location: Россия, Чита
|
(Separately) Posted: Sun Apr 01, 2007 20:42 Post subject: |
|
|
А что мешает Тоталу запускать отдельный процесс для проверки доступности какой-либо папки (шары, компакт-диска). Пусть он там висит, хоть зависится. Ждать от него репорта о готовности папки, при этом, заблокировав только активную панель и оставить возможность отменить операцию посредством Esc. _________________ Новые версии SM2BT здесь. |
|
Back to top |
|
 |
Стас Агарков

Joined: 05 Feb 2007 Posts: 130 Location: Белгород
|
(Separately) Posted: Sun Apr 01, 2007 20:56 Post subject: |
|
|
Можно загрузить несколько unrar.dll, по одной в каждом потоке?
P.S. Даже, когда TC значки загружает с CD/DVD, то весь TC подвисает. |
|
Back to top |
|
 |
CaptainFlint

Joined: 14 Dec 2004 Posts: 6193 Location: Москва
|
(Separately) Posted: Sun Apr 01, 2007 21:06 Post subject: |
|
|
GeNtlE wrote: | А что мешает Тоталу запускать отдельный процесс для проверки доступности какой-либо папки (шары, компакт-диска). |
Межпроцессное взаимодействие гораздо более сложное и громоздкое (и ресурсоотъедающее), чем межпоточное. При обсуждении одного вопроса Гислер даже лишний поток добавлять не хотел, дабы не нагружать систему пользователя - а тут аж целый процесс предлагается (да ещё и не один). Нет, он на такое ни за что не пойдёт. Вот разве что для фонового поиска... Да и то пока непонятно с ним.
Стас Агарков wrote: | Можно загрузить несколько unrar.dll, по одной в каждом потоке? |
Нельзя. Все потоки живут в одном адресном пространстве (что, собственно, и делает их более легковесными по сравнению с процессами), и при попытке загрузить одну и ту же DLL второй раз (пусть даже и в другом потоке того же процесса) ничего не произойдёт, попросту вернётся дескриптор той же самой, уже загруженной в память DLL. _________________ Почему же, ё-моё, ты нигде не пишешь "ё"? |
|
Back to top |
|
 |
GeNtlE
Joined: 16 Dec 2004 Posts: 141 Location: Россия, Чита
|
(Separately) Posted: Sun Apr 01, 2007 21:15 Post subject: |
|
|
CaptainFlint wrote: | Межпроцессное взаимодействие гораздо более сложное и громоздкое (и ресурсоотъедающее), чем межпоточное. При обсуждении одного вопроса Гислер даже лишний поток добавлять не хотел, дабы не нагружать систему пользователя - а тут аж целый процесс предлагается (да ещё и не один). | Где я предлагал добавить много процессов? Маленькая специальная утилита, которая будет проверять доступность папки. Он же ввёл утилиту TCAdmin. Всё. Панелей у нас две, значит, максимум, что мы будем иметь в экстремальном случае, когда пользователей полезет в сеть из двух панелей сразу, это неподвисший Тотал с замороженными панелями и двумя процессами. _________________ Новые версии SM2BT здесь. |
|
Back to top |
|
 |
CaptainFlint

Joined: 14 Dec 2004 Posts: 6193 Location: Москва
|
(Separately) Posted: Sun Apr 01, 2007 21:34 Post subject: |
|
|
GeNtlE wrote: | Панелей у нас две, значит, максимум, что мы будем иметь в экстремальном случае, когда пользователей полезет в сеть из двух панелей сразу, это неподвисший Тотал с замороженными панелями и двумя процессами. |
У пользователя есть ещё вкладки. И в каждой из них он тоже может захотеть полезть в сеть. _________________ Почему же, ё-моё, ты нигде не пишешь "ё"? |
|
Back to top |
|
 |
GeNtlE
Joined: 16 Dec 2004 Posts: 141 Location: Россия, Чита
|
(Separately) Posted: Sun Apr 01, 2007 21:41 Post subject: |
|
|
Ладно. Про ушки я совсем забыл. Если пользователь хочет лезть в сеть из нескольких вкладок, пусть лезет. О каких ресурсозатратах можно говорить (замедлении работы), если когда Total Commander лезет в сеть самостоятельно, он намертво виснет и работать с ним вообще нельзя. _________________ Новые версии SM2BT здесь. |
|
Back to top |
|
 |
CaptainFlint

Joined: 14 Dec 2004 Posts: 6193 Location: Москва
|
(Separately) Posted: Sun Apr 01, 2007 22:06 Post subject: |
|
|
GeNtlE wrote: | О каких ресурсозатратах можно говорить (замедлении работы), если когда Total Commander лезет в сеть самостоятельно, он намертво виснет и работать с ним вообще нельзя. |
Если Тотал подвис, то ясно, что не всё ладно в датском королевстве. А если на каждое действие Тотал будет втихую запускать процесс, не информируя об этом пользователя, то результатом запросто может стать дикое количество процессов, каждый из которых висит в функции обращения к сети и тем самым блокирует другие программы и процессы от доступа в сеть. Такова дебильная реализация работы с сетью в винде: если что-то обратилось к несуществующему компу и зависло, то пока не развиснет, другие обращения к сети (даже к доступным компам) тоже запросто могут зависнуть. В конце концов всё закончится полнейшей блокировкой сети тучей висящих процессов Тотала и, по всей видимости, перезагрузкой компа. _________________ Почему же, ё-моё, ты нигде не пишешь "ё"? |
|
Back to top |
|
 |
GeNtlE
Joined: 16 Dec 2004 Posts: 141 Location: Россия, Чита
|
(Separately) Posted: Sun Apr 01, 2007 23:06 Post subject: |
|
|
Запускать один процесс и поставить на их количество ограничение размером в одну-две штуки. Если в сеть ломился Тотал, а сеть повисла, повиснет и Тотал (пусть даже на время). Если же ввести процесс, то он зависнет, позволяя нам работать с Тотал Коммандером дальше. Ведь тормозится весь процесс со всеми потоками (GUI, копирование и т. д). А пользователя уж как-нибудь оповестить о попытке вылазки в сеть, а потом и об активности/неактивности сетевого подключения и доступности конкретного файла. _________________ Новые версии SM2BT здесь. |
|
Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|