public override void Send(FrameStream frame, bool reliable = false) { UDPPacketComposer composer = new UDPPacketComposer(); // If this message is reliable then make sure to keep a reference to the composer // so that there are not any run-away threads if (reliable) { composer.completed += ComposerCompleted; pendingComposers.Add(composer); } composer.Init(this, ServerPlayer, frame, reliable); }
public override void Send(FrameStream frame, bool reliable = false) { UDPPacketComposer composer = new UDPPacketComposer(); // If this message is reliable then make sure to keep a reference to the composer // so that there are not any run-away threads if (reliable) { // Use the completed event to clean up the object from memory composer.completed += ComposerCompleted; pendingComposers.Add(composer); } //TODO: New constructor for setting up callbacks before regular constructor (as seen above) composer.Init(this, Server, frame, reliable); }
public override void Send(FrameStream frame, bool reliable = false) { UDPPacketComposer composer = new UDPPacketComposer(); //如果这个信息是可靠的,那么一定要保持对作曲家的引用 //这样就没有任何失控的线程 // If this message is reliable then make sure to keep a reference to the composer // so that there are not any run-away threads if (reliable) { //使用完成的事件从内存中清理对象 // Use the completed event to clean up the object from memory composer.completed += ComposerCompleted; pendingComposers.Add(composer); } // TODO:在正则构造函数之前设置回调的新构造函数(如上所示) //TODO: New constructor for setting up callbacks before regular constructor (as seen above) composer.Init(this, Server, frame, reliable); }