コード例 #1
0
        public void Process(Complex *buffer, int length)
        {
            var rPtr = (float *)buffer;
            var iPtr = rPtr + 1;

            if (_isMultithreaded)
            {
                DSPThreadPool.QueueUserWorkItem(
                    delegate
                {
                    _rDecimator.ProcessInterleaved(rPtr, length);
                    _event.Set();
                });
            }
            else
            {
                _rDecimator.ProcessInterleaved(rPtr, length);
            }

            _iDecimator.ProcessInterleaved(iPtr, length);

            if (_isMultithreaded)
            {
                _event.WaitOne();
            }
        }