Member 14062044 Ответов: 2

Исправлена проблема возможного зависания GUI при добавлении через WebSocket downloder


Я добавляю web socket listener к совместимому приложению wit extension, я получаю URL-видео, но когда я вызываю NewVideoDownload() форма загрузки видео замораживает минуту, а затем утилизирует, как я решаю эту проблему?
MyDownloader: многопоточный сегментированный менеджер загрузок C# [^]

Что я уже пробовал:

Я делаю обработчик событий, и он отправляет данные правильно, но когда я вызываю video downloader form, его шоу зависает, я написал обработчик более чем одним способом, но проблема все еще остается.

2 Ответов

Рейтинг:
1

OriginalGriff

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

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

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


Member 14062044

Нет, не так, как ты говоришь.
Я открываю порт и запускаю сокет в отдельном классе и все еще слушатель в фоновом режиме, мое приложение работает правильно, когда получаю ссылку от websocket, я могу распечатать полученные данные и настроить их для загрузки формы, заморозить форму, но все методы в done и увидеть результат в log debug. -буфер обмена работает правильно-.

Я печатаю тестовое слово после получения данных и показываю форму замораживания, когда она печатается при отображении формы.

Рейтинг:
1

RickZeeland

Взгляните на эти загрузчики видео на GitHub: Тема: youtube-загрузчик · GitHub[^]


Member 14062044

Я беру ссылку на приложение в вопросе и полностью редактирую его при загрузке из всех социальных сетей