public void StartAll(Func <string, int> enqueue, DataArrivalEventHandler onDataArrival = null)
        {
            foreach (DeviceAdapterAbstract dataIntake in _dataIntakes)
            {
                try
                {
                    if (onDataArrival != null)
                    {
                        OnDataToEnqueue =
                            data =>
                        {
                            onDataArrival(data);

                            return(enqueue(data));
                        };
                    }
                    else
                    {
                        OnDataToEnqueue = enqueue;
                    }

                    dataIntake.Start(OnDataToEnqueue);
                }
                catch (Exception ex)
                {
                    _logger.LogError("Exception on Starting DeviceAdapter: " + ex.StackTrace);

                    // catch all other exceptions
                }
            }
        }
Esempio n. 2
0
        private void CallBackMethod(IAsyncResult ar)
        {
            //从异步状态ar.AsyncState中,获取委托对象
            DataArrivalEventHandler dn = (DataArrivalEventHandler)ar.AsyncState;

            //一定要EndInvoke,否则你的下场很惨
            dn.EndInvoke(ar);
        }
Esempio n. 3
0
        public void StartAll( Func<string, int> enqueue, DataArrivalEventHandler onDataArrival = null )
        {
            foreach( DeviceAdapterAbstract dataIntake in _dataIntakes )
            {
                try
                {
                    if( onDataArrival != null )
                    {
                        OnDataToEnqueue =
                            data =>
                            {
                                onDataArrival( data );

                                return enqueue( data );
                            };
                    }
                    else
                    {
                        OnDataToEnqueue = enqueue;
                    }

                    dataIntake.Start( OnDataToEnqueue );
                }
                catch( Exception ex )
                {
                    _logger.LogError( "Exception on Starting DeviceAdapter: " + ex.StackTrace );

                    // catch all other exceptions
                }
            }
        }