13

Tôi đang xem xét một số thuật toán xử lý tín hiệu trong một hoặc khác hoặc có thể kết hợp cả hai.Trường hợp sử dụng cho TPL Dataflow qua phần mở rộng phản ứng (Rx)

Hiệu suất không phải là mối quan tâm lớn, sự rõ ràng về ý định thể hiện quan trọng hơn.

Tôi muốn được tìm kiếm để thực hiện 'khối' sau và soạn chúng:

  • Filters (cả FIR và IIR)
  • dò giai đoạn
  • Integrators
  • trộn
  • Chức năng Máy phát điện
  • PLL (sử dụng ở trên làm khối xây dựng)

Tôi nhận được rằng Rx có thể được coi là 'Linq-to-stream' và TPL là một trừu tượng về đồng thời. Tôi cũng nhận được rằng Rx sử dụng TPL trong nội bộ để quản lý các bit không đồng bộ của nó và rằng TPL dataflow bổ sung tính composability vào TPL.

Vì vậy, cả hai đều không đồng bộ, cả hai đều có thể tổng hợp, cả hai đều khá cao (Rx moreso). Nơi nào nên được sử dụng, cả thông thường lẫn trong các mục Xử lý tín hiệu ở trên?

+0

@Paul R Cảm ơn bạn đã chỉnh sửa, đã không nhận thấy điều đó! – stevenrcfox

+1

Bạn được chào đón! –

+0

@Overflow bạn đã giải quyết trên một phương pháp tiếp cận? Bạn có thể cho chúng tôi biết nó là gì không? – Asti

Trả lời

6

Tùy thuộc vào loại nguyên thủy bạn đang xử lý - Rx và TPL phong phú hơn nhiều nếu bạn đang sử dụng loại khuếch đại để đẩy dữ liệu, nhưng nếu bạn đang xử lý các mẫu riêng lẻ (chẳng hạn như IObservable<byte>, ISourceBlock<float> v.v.) nó có thể là tẻ nhạt để làm việc với. Gần đây đã triển khai một bộ tạo hiệu năng, FFT, bộ định lượng phổ công suất trong số những người khác, tôi bắt đầu với Rx (đây không phải là trường hợp đồng thời/song song khi TPL vượt trội), nhưng tôi đã dành nhiều thời gian hơn nó hoạt động trong mô hình Rx - cuối cùng tôi đã giải quyết cho System.Stream.

Nó hoạt động tốt cho tôi và đáng ngạc nhiên hợp lại. Tuy nhiên, hiệu suất và tránh GC là đầu trong danh sách của tôi, vì vậy nếu bạn không nhớ hoặc, tôi muốn đề nghị Rx - bạn có thể làm một số điều thực sự mát mẻ với các combinators phản ứng.

Các vấn đề liên quan