Async tasks

Hi ,

I have a python script that uses vtk to launch a vtk window to visualize an object . This window is created and launched by a function and this function is assigned to a thread . I’m launching another function that will take information from the camera i the vtk window and write it to a text file. This function is also assigned to another thread . From the main() i’m trying to launch the two threads in parallel. The problem is that when i launch the vtk window function in a thread and then launch the other function in another thread , the vtk thread blocks everything (in the sense that code after this doesn’t run) and when i close the vtk window the code after it continues.

When testing different things i discovered that this function blocks everything :
—renderWindowInteractor.Start()

Have you got a solution for that ??

Please clarify what you want to achieve.

You want to do async tasks?

You can do this by launching ParaView from *.pvsm.

I’ve found a solution but i don’t know how to implement it.
I found this funtion : renderWindowInteractor.AddObserver(‘TimerEvent’, CallBack.writer)

With this observer i can catch different events .This example works fine when i launch from pyCharm with vtk because it creates a Window that i can interact with. The code i’m talking about is this:

    renderWindowInteractor.Initialize()
    cb = ReaderWriterCallback()
    cb.actor = actor
    renderWindowInteractor.AddObserver('TimerEvent', cb.writer)
    timerId = renderWindowInteractor.CreateRepeatingTimer(100)

    # start the interaction and timer
    renderWindowInteractor.Start() 

As you see in this example , the Event is Timer , but the problem is that when i try to
launch the

 renderWindowInteractor.CreateRepeatingTimer(100)

on paraview , it doesn’t recognize because it’s not a paraview function . In other words i want to interact with the paraview Render View on paraview and not vtk GUI. For example i would like to detect MouseEvents in paraview but it doesn’t work .