как это можно поймать? если это все внутри метода FTSearch делается?
внутри ftsearch происходит колдунство, в результате которого мы получаем коллекцию документов - этот процесс нам неподвластен.
но после ftsearch агент же делает что-то с этой коллекцией? ежели там putinfolder - тогда расслабьтесь, прогрессбар не реализуем.
а если там идет перебор коллекции в цикле - тогда есть шанс, который заключается в том, что перебор займет больше времени, чем вызов ftsearch.
еще раз: спрофилируйте агента, чтобы понять какая часть кода выполняется дольше всего.
в declarations агента добавляем:<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">declarations</div></div><div class="sp-body"><div class="sp-content">
Код:
Class SimpleTimer
Private startTic As Long
Sub new()
Call restart()
End Sub
Public Sub restart()
startTic = Getthreadinfo(6)
End Sub
Public Function getSeconds() As Double
getSeconds = (Getthreadinfo(6) - startTic) / Getthreadinfo(7)
End Function
Public Function getFormattedSeconds() As String
getFormattedSeconds = Format$( getSeconds() , "##0.00")
End Function
Public Function getFormattedSecondsAndRestart() As String
getFormattedSecondsAndRestart = getFormattedSeconds()
Call restart()
End Function
End Class
в начале агента(initialize) добавляем: Dim stimer As New SimpleTimer()
перед вызовом ftSearch: messageBox "from start to ftsearch: " & stimer.getFormattedSecondsAndRestart()
сразу после вызова ftSearch:messageBox "ftsearch: " & stimer.getFormattedSecondsAndRestart()
перед выходом из агента: messageBox "from ftsearch to end: " & stimer.getFormattedSeconds()
Далее смотреть выхлоп в консоли(log.nsf). Если основное время уходит на вызов ftsearch - следует расслабица и забыть о прогрессбаре.