#pragma once #include "Queue.h" #include "Singleton/Singleton.h" #include "ThreadMessage.h" #define PUSH_THREAD_EVENT(Message, ...) (new FThreadMessage_##Message(FThreadMessage_##Message::FArgs{__VA_ARGS__}))->PushToThread() // #define PUSH_THREAD_EVENT(Thread, Message, ...) Thread::Get().PushMessage(new FThreadMessage_##Message(FThreadMessage_##Message::FArgs{__VA_ARGS__})) class FMainThreadEventList : public TSingleton, public TQueue { public: virtual FName GetName() override { return "MainThread"; } };