Example #1
0
 private async ValueTask EventAsyncWorker()
 {
     while (!token.IsCancellationRequested && await channelAsyncData.Reader.WaitToReadAsync(token))
     {
         if (channelAsyncData.Reader.TryRead(out EventItem item))
         {
             DataReadyAsyncEvent?.Invoke(item.IP, item.Port, item.Time, item.Data, item.ID, item.IpUInt);
         }
     }
 }
Example #2
0
        public void UnsubscribeEventHandlers()
        {
            if (DataReadySyncEvent != null)
            {
                foreach (var d in DataReadySyncEvent.GetInvocationList())
                {
                    DataReadySyncEvent -= (d as DataReadySyncDelegate);
                }
            }
            DataReadySyncEvent = null;

            if (DataReadyAsyncEvent != null)
            {
                foreach (var d in DataReadyAsyncEvent.GetInvocationList())
                {
                    DataReadyAsyncEvent -= (d as DataReadyAsyncDelegate);
                }
            }
            DataReadyAsyncEvent = null;

            if (ConnectionStateEvent != null)
            {
                foreach (var d in ConnectionStateEvent.GetInvocationList())
                {
                    ConnectionStateEvent -= (d as ConnectionStateDelegate);
                }
            }
            ConnectionStateEvent = null;

            if (DataRateEvent != null)
            {
                foreach (var d in DataRateEvent.GetInvocationList())
                {
                    DataRateEvent -= (d as DataRateDelegate);
                }
            }
            DataRateEvent = null;
        }
Example #3
0
 private void OnCommunicatorAsyncData(string ip, int port, long time, IMemoryOwner <byte> data, string ID, uint ipuint)
 {
     // Launched by threadpool in dedicated thread (different from socket). Dispose IMemoryOwner so it goes back to Pool
     DataReadyAsyncEvent?.Invoke(ip, port, time, data, ID, ipuint);
 }