Skip to end of metadata
Go to start of metadata

You are viewing an old version of this content. View the current version.

Compare with Current View Version History

« Previous Version 2 Next »

Here are some important considerations when developing your device.

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. Without this cap, the server slows down and has difficulty starting channels because .NET generates too many threads. If you tie up one of these threads, there are fewer threads left for starting/stopping other devices.

2)      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 install has more than 100 channels.

3)      Prefer ProcessMessageAsync over ProcessMessage. Same as (2), but specific for processing messages.

4)      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)

  • No labels