Example #1
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="ipcName"></param>
        public IpcSender(string ipcName) : base(ipcName)
        {
            m_SendQueue = new Queue <T>(10);

            m_JsonShmSender = new JsonShmSender <T>(IpcName);

            m_SendThread    = new Thread(SendThreadMain);
            m_SendDataEvent = new AutoResetEvent(false);

            m_Running = true;
            m_SendThread.Start();
        }
Example #2
0
        public void ShmSendReciveTest()
        {
            const string testData = "The Test Data";

            const string shmName = "TestShm";

            using (var shmSender = new JsonShmSender <string>(shmName))
            {
                using (var shmReceiver = new JsonShmReceiver <string>(shmName))
                {
                    var send = shmSender.SaveToSharedMemory(testData);
                    Assert.IsTrue(send);

                    var recived = shmReceiver.LoadFromSharedMemory();
                    Assert.AreEqual(testData, recived);
                }
            }
        }
Example #3
0
        /// <summary>
        /// Dispose
        /// </summary>
        /// <param name="disposing"></param>
        protected override void Dispose(bool disposing)
        {
            if (disposing)
            {
                m_SendDataEvent?.Set();
                m_Running = false;

                m_SendThread?.Join();
                m_SendThread = null;

                m_JsonShmSender?.Dispose();
                m_JsonShmSender = null;

                m_SendDataEvent?.Dispose();
                m_SendDataEvent = null;
            }

            base.Dispose(disposing);
        }