특정 문제가 있습니다, 버퍼가 비어 있지 않은 경우 일부 기간 컨트롤에서 별도의 작업 스레드가 싶습니다. 그렇지 않다면, 쓰레드는 버퍼 (ConcurrentQueue)로부터 데이터를 전송합니다 ... CPU에 많은 비용이 들지 않는 좋은 해결책이 있습니까 ??스레드 루핑 및 버퍼에서 메시지를 기다리는 중 - 최상의 솔루션
내 방법은 작동하지만 어쩌면 좋지 않을 수도 있습니다. (실제로는 스레드 간 동기화가 많지 않습니다.)
public void start(object timeout){
//Message - my own objective implementation of some tcp message
Message m;
while (true) {
if (msgBuffer.Count != 0) {
if (msgBuffer.TryDequeue(out m)) {
client.SendData(MediatorPacket.GetPacketBytes(m));
SpinWait.SpinUntil(() => { if (msgBuffer.Count != 0) return true; else return false; });
}
}
}
}*/