【发布时间】:2008-11-06 18:12:43
【问题描述】:
我有一个具有以下基本架构的应用:
为远程访问 (.NET Remoting) 注册一个 .NET 类型 (RemoteObject) 的 Windows 服务 (Service)。 RemoteObject 创建使用 ThreadPool 进行 IO 处理的非 ThreadPool 线程。由于特定原因,必须将 ThreadPool 的大小限制在一个限制内。 GUI 应用程序使用 .NET Remoting 来访问 RemoteObject。
我注意到如果 ThreadPool 的大小太小,GUI 应用程序在调用 RemoteObject 时会挂起。
我的问题是,我怎样才能弄清楚为什么会挂起,以及为什么 RemoteObject 线程会受到 ThreadPool 的影响?
这让我发疯了;谢谢你的帮助!
【问题讨论】:
-
好吧,你说“RemoteObject 创建使用 ThreadPool 进行 IO 处理的非 ThreadPool 线程。”这难道不是原因吗(即非线程池线程正在等待线程池插槽打开)?
-
为什么会影响 RemoteObject 所在的线程? GUI 甚至无法进入它正在调用的 RemoteObject 方法。
-
如果你能解决这个问题,放弃远程处理,转而使用 WCF。
-
克里斯托弗,请参阅我回答的最底部段落。你是从 GUI 线程调用远程还是异步处理它?
标签: .net multithreading remoting