Возможно, нашел в чем причина зависаний. Похоже, поток с циклом просто вылетает без каких-либо сообщений об ошибке.
Шаги в цикле разделены так:
Код: Выделить всё
Step 1. TorrentGet
Step 2. WinSetText
Step 3. FileFindEv
Step 3. aQuery.Text
Step 4. aCount.Add
Step 5. sList
Step 6. sDirs
Step 7. StrReplace
Step 8. NextКод: Выделить всё
Func FindTorrentParts(lParam)
RunThread "ThreadTorrentParts" lParam
EndFunc И сразу все увидел. Старт происходит нормально:
Код: Выделить всё
Thread #1:
Origin: Main
ThreadID: 7128
Started: 06.10.2025 18:14:54
Thread #2:
Origin: RunThread
Function: Function: ThreadTorrentParts
ThreadID: 1548
Started: 06.10.2025 18:15:16
Thread #3:
Origin: RunThread
Function: Function: WinFindTorrentData
ThreadID: 2020
Started: 06.10.2025 18:15:16Код: Выделить всё
Thread #1:
Origin: Main
ThreadID: 7128
Started: 06.10.2025 18:14:54
Thread #3:
Origin: RunThread
Function: Function: WinFindTorrentData
ThreadID: 2020
Started: 06.10.2025 18:15:16Код: Выделить всё
# перечисление файлов в торренте
For j = 0 To nCount - 1
If gTorrentDbg Then gDbgStep = "Step 1. TorrentGet j=" & j & auCRLF
....
....
If gTorrentDbg Then gDbgStep &= "Step 8. Next"
# опрерация прервана закрытием окна прогресса
If g_FindTorrTask = 0 Then Break
NextA55555
Даже не знаю, что у вас не так с экраном. У меня подобной проблемы нет - обновление и перерисовка происходят в штатном режиме. А вот проблема с зависанием, увы, никуда не делась, но будем надеяться, что то, что я написал выше, поможет Loopback найти причину.
Дело, конечно, не только в Blu-ray дисках. На любых торренах, где есть много вложенных файлов (аудио, музыка и т.д.), такое случается, и часто. Хотя, как я уже говорил, эта проблема характерна только для 64-битного ТС. Вы проверяли работу функционала на 32-битном ТС? Может быть и проблема с экраном тоже уйдет.
Если проблема только с перерисовкой, то решение, которое я вчера запостил должно помочь. Обе эти команды - 70501 и 70504 - заканчивают свою работу функцией GoToPathFromMsg, которая и осуществляет переход. В обновленную функцию выше я уже добавил команды для перерисовки и обновления панели, поэтому нет необхожимости отдельно их добавлять к 70501 и 70504.
В следующий раз когда экран не обновится, просто нажмите Ctrl+R, если это поможет, то и посылка SendCommand(540) тоже должна помочь.