I’m facing a huge problem with a playout client. It’s a very simple playlist-based client and so far I didn’t have any issues in production environments.
I recently implemented a feature called “Schedule” (I think it explains itself), so any item in the playlist can have a start date and time and it fires up immediately or after the current item is finished.
The problem I have is that after some time that the system is idle it seems that the objects in the playlist (or the MediaInfo object associated to it) get garbage collected and fire up a NullReferenceException when the Timer class attempts to play it. It never crashes after short periods of time (eg. an hour) but it does after 10 hours or so.
Have you faced this problem? How can I prevent the GC from getting rid of the instances? They seem to be still referenced in the objects but when they’re called they are gone.