What is the problem you are trying to solve with multi-threading, Igor?
Are you wanting to free up the GUI from a long-running database retrieval? Speed up the elapsed time it takes to perform a series of database retrievals? Run multiple reports simultaneously? Handle large volume(s) of data retrieval more quickly?
Multi-threading is not a magic pill that will solve a multitude of performance issues, and as you are seeing, it is not a simple thing to utilize in PB. Depending on what you are trying to accomplish, there can be trade-offs. For example, while the use of multi-threading can help improve the user's perception of performance for a long-running database retrieval, it is a poor solution for database retrievals that return very large result sets.
Perhaps if you could explain the big picture, we could provide you with some suggestions.