Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Single Post  Topic: Autorun 
Author Message
Orion9



PostPosted: Fri Nov 07, 2025 13:53    Post subject: Reply with quote

Loopback
А почему потоки, запускаемые из кнопок и горячих клавиш, не отображаются в GetState? Ведь эти функции тоже в отдельных потоках запускаются, верно? Если да, то какая разница между запуском из кнопки и запуском через RunThread?

Вопросы не на ровном месте. Убрал запуск окна прогресс-бара в отдельном потоке через переменную и условие:
Code:
Global g_WinThread = 0

If g_WinThread Then
   RunThread "WinFindTorrentData"
   While g_FindTorrTask = 0
       Sleep(50)
   Wend
Else
    WinFindTorrentData(0)
EndIf

Окно теперь создается в том же потоке, что и функция запроса FileFindEv, при этом стабильности в х64 значительно прибавилось. Целый час тестировал, операция ни разу не зависла. Правда тотал все-таки один раз упал, а параллельные потоки заголовка и др. продолжали отваливаться и исчезать из GetState, но общая стабильность работы возрасла. Проверить это можно, если вернуть все назад через g_WinThread=1. Как только окно запускается через RunThread, зависания происходят через считанные секунды или минуты.

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

Но плюс довольно большой: операция выполняется более стабильно, а значит выбор очевиден. Обновленный модуль:
 Torrent.aucfg
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group