Я использую эту функцию (я называю ее встроенной функцией, поскольку я не знаю, как ее обычно называют):
Private Shared _fixationDataStream As FixationDataStream
Private Shared Sub CreateAndVisualizeSensitiveFilteredFixationsStream()
_fixationDataStream = _host.Streams.CreateFixationDataStream()
_fixationDataStream.Begin(Function(x, y, __)
Debug.Print(vbLf & "Fixation started at X: {0}, Y: {1}", x, y)
_fixationBeginTime = DateTime.Now
End Function).Data(Function(x, y, __)
Debug.Print("During fixation, currently at: X: {0}, Y: {1}", x, y)
End Function).[End](Function(x, y, __)
Debug.Print("Fixation ended at X: {0}, Y: {1}", x, y)
If _fixationBeginTime <> Nothing Then
Console.ForegroundColor = ConsoleColor.Cyan
Debug.Print("Fixation duration: {0}", DateTime.Now - _fixationBeginTime)
Console.ForegroundColor = _defaultForegroundColor
End If
End Function)
End Sub
Когда я использую фоновую задачу или FolderWatcher и выполняючто-то внутри него, например, событие-поднятие, идет ужасно неправильно.
Я хотел бы знать, может ли это произойти и здесь.
Как работает эта встроенная функция?
Работает ли он в бесконечном цикле?И если да, то откуда он получает сигнал об остановке?
И можно ли использовать AddHandler вместо этой встроенной функции?
Спасибо.
ЭтоВот как объявляются такие функции, как Begin, Next и End:
Namespace Tobii.Interaction
Public Class FixationDataStream
Inherits DataStreamBase(Of FixationDataBehavior, FixationData)
Public Sub New(fixationDataBehavior As FixationDataBehavior, hasSubscribersChanged As Action, enabled As Boolean)
Public Function Begin(action As Action(Of Double, Double, Double)) As FixationDataStream
Public Function [End](action As Action(Of Double, Double, Double)) As FixationDataStream
Public Function Data(action As Action(Of Double, Double, Double)) As FixationDataStream
End Class
End Namespace