Files
AronaSlate/Source/AronaCore/Thread/MainThreadEventList.h
2024-01-25 11:21:15 +08:00

15 lines
575 B
C++

#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<FMainThreadEventList>, public TQueue<FThreadMessage*, EQueueMode::Mpsc>
{
public:
virtual FName GetName() override { return "MainThread"; }
};