They seem to do the same work. Are there some special differences?
I have found the answer. We usually use “new” to create the FRunable, so FRunable():~FRunable() will not be called. UE4 will call FRunable:Exit() to clean up. We can use “delete this;” in FRunable:Exit()