AsyncThread

Execute a given function asynchronously using a separate thread.