Difference between FAsyncTask - FRunnable - TaskGraph

Hello everyone, I was developing an async save/load system because I need to serialize many many actors and levels, in my game there will be an autosave and I don’t want to play and see mini freeze because of normal save, so I’m a bit stuck on the multithread implementation.
In the save system, I check every levels to see which actor has the tag “savegame”, I serialize them and then save; I did all of these with 2 or more FAsyncTask. The result is: when I save, sometimes, the editor freeze and I have to kill the process and restart the editor.
So I tried the same thing, but using FRunnable instead of FAsyncTask and all works fine, but searching on the ue4 wiki I found that there is TaskGraph for async work too.
I really need to understand the difference between these 3 classes, what’s the best way to create an async save that doesn’t freeze or work on main thread?

If you need more info, I can post some of my code.
I hope someone will help me, thanks in advance :slight_smile:

Hi. FRunnable has a skippable ability maybe just drop some of your work for avoid freeze.
FAsyncTask add your work to FQueuedThreadPool and no auto skippable.
I think your problem comes from your loop. try this