Поскольку я (и многие другие люди в Интернете) не могу настроить тайм-аут TcpChannel на стороне клиента при использовании .NET Remoting (пожалуйста, не предлагайте правильные исправления, я буквально все перепробовал, и никаких предложений WCF, пожалуйста), я придумали то, что кажется достойным обходным путем для создания тайм-аута на стороне клиента, который мы можем настроить. Если я передаю каждый вызов Remoting через отдельный поток таймера, и вызов либо истекает по тайм-ауту, либо генерирует исключение, тогда я могу убить поток и предположить, что сервер не работает.
Тем не менее, я запустил это с другим коллегой, и он был непреклонен в том, что я могу вызвать взаимоблокировку в собственном машинном коде .NET, сделав это. Я читал другие случаи использования этого типа техники в Интернете, такие как этот пост здесь, поэтому я не уверен, действительно ли мне следует беспокоиться о взаимоблокировке. Я вижу, что это может быть проблемой, если поток прерывается в середине отправки или получения чего-либо, но не в том случае, если мы просто ждем ответа.