Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Here are some important considerations when developing your device.1)      Don’t

  1. Don’t do ANY time consuming work in BaseDevice.Start() or BaseDevice.Stop(). There is a limit of 20 threads for Starting/Stopping devices. If you tie up one of these threads, there are fewer threads left for starting/stopping other devices. Without this cap, the server slows down and has difficulty starting channels because .NET generates too many

...

  1. threads

...

  1. .

...

  1. Use async/await where possible. This reduces the number of threads required by Connexion and results in better performance, and lower memory usage. This is especially important if the Connexion

...

  1. is running more than 100 channels.

...

  1. Prefer ProcessMessageAsync over ProcessMessage. Same as (2), but specific for processing messages. Also, ProcessMessage will be obsoleted in the next version of Connexion.

...

  1. Use BaseDevice.OnError to handle retrying. This uses async/await under the covers so there are no threads tied up sleeping. For an example of this please see: Sample Device with Retry (Sending)