好的,这是一个非常奇怪的问题,但情况是这样的。我有一个我一直在研究的通信库,它的众多功能之一是一个后台线程,它接受来自套接字的所有传入数据包并根据需要将它们分发出去。在最简单的形式中,您可以有请求或对请求的响应。多个线程可以使用此库在同一个套接字上发送请求,方法是发送请求,然后在其响应到达时等待来自后台线程的信号(事件)。
您定义一个与后台线程关联的委托来处理传入请求所发生的情况。简而言之,您可以尝试从该委托发送请求。由于这与后台接收线程都在同一个线程上,因此它变得死锁(线程将阻塞,等待它的响应,这永远不会发生)。这些是我和大多数人都知道要避免的情况,但我希望有一种方法来抛出异常,或者可能有一个编译时检查,以防止程序员尝试调用某个方法,即发送请求的方法,从处理接收的线程。