데이터 버퍼 클래스 작성 중
This commit is contained in:
@@ -79,7 +79,6 @@ namespace UVC.network
|
||||
client.OnStateChanged += OnStateChangedMQTT;
|
||||
client.OnDisconnect += OnDisconnectedMQTT;
|
||||
client.OnError += OnErrorMQTT;
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -327,8 +326,19 @@ namespace UVC.network
|
||||
{
|
||||
if (topicHandler.TryGetValue(topic.Filter.OriginalFilter, out var handler))
|
||||
{
|
||||
// 등록된 핸들러가 있으면 호출
|
||||
handler.Invoke(topic.Filter.OriginalFilter, payload);
|
||||
// 메인 스레드에서 실행 중인지 확인합니다.
|
||||
bool isMainThread = UniTask.SwitchToMainThread().GetAwaiter().IsCompleted;
|
||||
Debug.Log($"MQTT OnTopic {topic.Filter.OriginalFilter} => {payload} isMainThread={isMainThread}");
|
||||
if (isMainThread)
|
||||
{
|
||||
// 메인 스레드이므로 핸들러를 직접 호출합니다.
|
||||
handler.Invoke(topic.Filter.OriginalFilter, payload);
|
||||
}
|
||||
else
|
||||
{
|
||||
// 백그라운드 스레드이므로 UniTask.Post를 사용하여 메인 스레드로 작업을 보냅니다.
|
||||
UniTask.Post(() => handler.Invoke(topic.Filter.OriginalFilter, payload));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user