示例#1
0
        protected virtual void Dispose(bool finalize)
        {
            if (_isDisposed)
            {
                return;
            }

            _isDisposed = true;
            if (_closeStreamOnDispose)
            {
                if (_sr != null)
                {
                    _sr.Value.Dispose();
                }
                if (_bsonReader != null)
                {
                    _bsonReader.Close();
                }
            }

            if (!ChoETLFrxBootstrap.IsSandboxEnvironment)
            {
                System.Threading.Thread.CurrentThread.CurrentCulture = _prevCultureInfo;
            }

            _closeStreamOnDispose = false;

            if (!finalize)
            {
                GC.SuppressFinalize(this);
            }
        }
示例#2
0
 private static T DeserializeObject <T>(byte[] bson)
 {
     using (var ms = new MemoryStream(bson))
     {
         var bdr        = new BsonDataReader(ms);
         var serializer = new JsonSerializer();
         serializer.TypeNameHandling = TypeNameHandling.Objects;
         var result = serializer.Deserialize <T>(bdr);
         bdr.Close();
         return(result);
     }
 }
示例#3
0
        void RecvFromServer()
        {
            TimeSpan ts;

            while (true)
            {
                if (!_loginSuccess)
                {
                    Thread.Sleep(5);
                    continue;
                }
                ts = DateTime.Now - receiveDataStartTime;
                if (ts.TotalSeconds > 5)
                {
                    lock (receiveDataBuffer)
                    {
                        receiveDataBuffer.Clear();
                    }
                    tcpClient.Close();
                    _isTcpConnected = false;
                    _loginSuccess   = false;
                    this.Invoke(new Action(() =>
                    {
                        btn_Connect.Text  = "连接";
                        pictureBox1.Image = null;
                    }));
                    Thread.Sleep(5);
                    continue;
                }
                if (receiveDataBuffer.Count == 0)
                {
                    Thread.Sleep(5);
                    continue;
                }

                try
                {
                    List <byte[]> cmds        = new List <byte[]>();
                    int           removeCount = 0;
                    byte[]        buffers;
                    lock (receiveDataBuffer)
                    {
                        buffers = receiveDataBuffer.ToArray();
                    }
                    Package7E.UnPack(buffers, ref cmds, ref removeCount);
                    if (removeCount > 0)
                    {
                        lock (receiveDataBuffer)
                        {
                            receiveDataBuffer.RemoveRange(0, removeCount);
                        }
                    }

                    for (int i = 0; i < cmds.Count; i++)
                    {
                        BsonDataReader bsonDataReader = null;
                        try
                        {
                            MemoryStream msShareData = new MemoryStream(cmds[i]);
                            bsonDataReader = new BsonDataReader(msShareData);
                            JsonSerializer jsonSerializer = new JsonSerializer();
                            ShareData      shareData      = jsonSerializer.Deserialize <ShareData>(bsonDataReader);
                            switch (shareData.Type)
                            {
                            case "Text":
                                ShowResult(shareData.TextData);
                                break;

                            case "Image":
                                ShowImage(shareData.ImgData);
                                break;

                            default:
                                break;
                            }
                        }
                        catch (Exception ex)
                        {
                        }
                        finally
                        {
                            if (bsonDataReader != null)
                            {
                                bsonDataReader.Close();
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    //Log.Error("RecvFromSlave Error", ex);
                }
                Thread.Sleep(5);
            }
        }