Unreal Engine Output Delegates
DECLARE_DYNAMIC_DELEGATE(FOnSomethingHappenedSignature);
UFUNCTION(BlueprintCallable)
void DoSomething(const FOnSomethingHappenedSignature& OnSomethingHappened)
{
AsyncTask(ENamedThreads::AnyThread, [OnSomethingHappened]()
{
OnSomethingHappened.ExecuteIfBound();
};
}