2010-10-06 51 views
0

我们有一些.NET类作为COM组件公开。客户有一种服务,它利用来自多线程C++应用程序的这些COM组件。事情通常工作正常,但在某些情况下,我们看到问题在这个环境中将请求排入System.Threading.Threadpool。基本上,当我们使用System.Threading.ThreadPool.QueueUserWorkItem去排队用户工作时,即使在任何时间都没有超过15-20个同时发生的请求,我们也会收到一个错误。 这项服务运行在四核服务器上,并没有真正承受任何主要资源压力。 从.NET COM组件中,我们排队了一些Web服务调用,因为我们不希望在进行这些调用时阻止整个处理顺序(它们基本上是火和忘记了类型任务)。AppDomain如何在托管.NET组件的navite应用程序中初始化

所以我想知道的是没有人了解应用程序域如何从这样的环境中初始化,所以我可以尝试并开始追踪这个问题。

亲切的问候

诺埃尔。

回答

0

QueueUserWorkItem返回值的文件说:

如果该方法成功地排队;如果工作项无法排队,则会抛出NotSupportedException

这似乎不允许虚假的回报。因此,要么花时间使用.NET Reflector来理解这种方法的错误含义,要么与Microsoft交谈(或者存在文档或实现错误)。如果你采取后者的路线,把最短的重新创建你可以。

+0

对于.NET 3.5和4.0版本,这是正确的。这个COM Interop层是在.NET 2.0中开发的,它返回true或false。 – Bigtoe 2010-10-06 11:55:26

+0

@Bigtoe:我检查了V3.5 ...一次,这还不够:-(。 – Richard 2010-10-06 13:35:22

相关问题