views:

19

answers:

1

Hi Folks, We have some .NET classes exposed as COM components. A customer has a service which utilises these COM components from a multithreaded C++ application. Things generally work fine but in some cases we are seeing issues queuing requests onto the System.Threading.Threadpool in this environment. Basically when we go to queue a user work using System.Threading.ThreadPool.QueueUserWorkItem we receive back a false even though there are no more than 15-20 simultaneous requests underway at any one time. This service is running on a Quad core server and is not really under any major resource strain. From the .NET COM components we queue some web-service calls as we don't want to hold up the overall processing sequence while these are underway (they are basically fire and forget type tasks).

So what I'm wondering is does anyone have an understanding of how the Applicaion Domains get initialised from such an environment so I can try and start to track down this issue.

Kind Regards

Noel.

A: 

The documentation for the return value of QueueUserWorkItem says:

true if the method is successfully queued; NotSupportedException is thrown if the work item could not be queued.

Which doesn't appear to allow a false return. Therefore, either spend time with .NET Reflector understanding what false means from this method, or talk to Microsoft (either there is a documentation or implementation bug). If you take the latter route, put together the shortest re-create you can.

Richard
Bigtoe
@Bigtoe: and I checked for V3.5... for once that wasn't enough :-(.
Richard