private void SendNextDesktopRecordFrame(TcpSocketSaeaSession session)
        {
            ThreadPool.QueueUserWorkItem((o) =>
            {
                if (_screen_record_width == 0 || _screen_record_height == 0)
                {
                    return;
                }

                Thread.Sleep(_screen_record_spantime);

                SendTo(session, MessageHead.C_MAIN_DESKTOPRECORD_FRAME, ImageExtensionHelper.CaptureNoCursorToBytes(new Size(_screen_record_width, _screen_record_height)));
            });
        }
        private void SendNextFrameDesktopView(TcpSocketSaeaSession session)
        {
            ThreadPool.QueueUserWorkItem(c =>
            {
                var getframe = GetMessageEntity <DesktopViewGetFramePack>(session);
                if (getframe.Width == 0 || getframe.Height == 0 || getframe.TimeSpan == 0 || getframe.TimeSpan < 50)
                {
                    return;
                }

                Thread.Sleep(getframe.TimeSpan);

                SendTo(session, MessageHead.C_MAIN_DESKTOPVIEW_FRAME,
                       new DesktopViewFramePack()
                {
                    InVisbleArea = getframe.InVisbleArea,
                    ViewData     = getframe.InVisbleArea ? ImageExtensionHelper.CaptureNoCursorToBytes(new Size(getframe.Width, getframe.Height)) : new byte[0]
                });
            });
        }
        private void SendNextFrameDesktopView(TcpSocketSaeaSession session)
        {
            ThreadHelper.ThreadPoolStart(c =>
            {
                var args     = c.ConvertTo <object[]>();
                var accessId = args[0].ConvertTo <long>();
                var getframe = args[1].ConvertTo <DesktopViewGetFramePack>();
                if (getframe.Width == 0 || getframe.Height == 0 || getframe.TimeSpan == 0 || getframe.TimeSpan < 50)
                {
                    return;
                }

                Thread.SetData(Thread.GetNamedDataSlot("AccessId"), accessId);

                Thread.Sleep(getframe.TimeSpan);

                SendTo(session, MessageHead.C_MAIN_DESKTOPVIEW_FRAME,
                       new DesktopViewFramePack()
                {
                    InVisbleArea = getframe.InVisbleArea,
                    ViewData     = getframe.InVisbleArea ? ImageExtensionHelper.CaptureNoCursorToBytes(new Size(getframe.Width, getframe.Height)) : new byte[0]
                });
            }, new object[] { GetAccessId(session), GetMessageEntity <DesktopViewGetFramePack>(session) });
        }