I'm not using a proxy (and haven't tested it with one).
200+ is a fair few threads, and that will continue to rise as more users are added & more functionality is implemented, but it's sitting pretty for now :)
At some point I'll probably have to switch away from having a thread per user, per API endpoint being polled, even if only to reduce the overheads involved.
As for deadlocks: currently I cannot think of any situation in the production code where a deadlock can occur (off of the top of my head), and lock-free methods/objects are used where possible (e.g. ConcurrentDictionary & use of Interlocked methods) but it will definitely need careful consideration in future as it grows.
Cheers,
Josh
200+ is a fair few threads, and that will continue to rise as more users are added & more functionality is implemented, but it's sitting pretty for now :)
At some point I'll probably have to switch away from having a thread per user, per API endpoint being polled, even if only to reduce the overheads involved.
As for deadlocks: currently I cannot think of any situation in the production code where a deadlock can occur (off of the top of my head), and lock-free methods/objects are used where possible (e.g. ConcurrentDictionary & use of Interlocked methods) but it will definitely need careful consideration in future as it grows.
Cheers,
Josh