Hi!
Your project looks interesting.
I would implement a solution as a C++ class, or even, as a number of static handy functions,
(i.e. no need to transfer complex data structures to/from C#, when we need just a 'bytes per second' value), put them in an unmanaged dll, and then call them from a C# class, using basic interop techniques.
Regards,
Alexander