thread-pool

How do I use WaitHandles safely to prevent deadlocks?

Observe the following pseudo: ManualResetEvent[] resetEvents = new ManualResetEvent[operations.Count]; for( int i = 0; i < operations.Count; i++ ) { resetEvents[i] = new ManualResetEvent(false); ThreadPool.QueueUserWorkItem(new WaitCallback(timeConsumingOpHandler), resetEvents[i]); } WaitHandle.WaitAll(resetEvents); In the case ...

ThreadPool Best Practices, Correctness

Hey everyone. I've been working on some code for a while that would spawn threads when needed, but decided a simpler and more effective solution would be to create a thread pool. It's implemented with a queue I made that has conditional waits on queuing and dequeuing. The only reason I'm posting this, is because I'm getting some weird er...

Can a standard thread be reused for the Thread Pool?

I'm having some weird behavior in an application which is puzzling me. I create a thread, let's call it worker, which is responsible for handling communication requests. Clients write on a pipe while the thread consumes the requests and send messages. Now, the main loop of the thread has something like this: lock(this) { object_id =...

Java Threadpool vs. new Thread in high request scenario

I have some old java code for a REST service that uses a separate thread for every incoming request. I.e. the main loop would loop on socket.accept() and hand off the socket to a Runnable which then would start up its own background thread and invoke run on itself. This worked admiringly well for a while until recently i noticed that the...

Java Threading Tutorial Type Question

I am fairly naive when it comes to the world of Java Threading and Concurrency. I am currently trying to learn. I made a simple example to try to figure out how concurrency works. Here is my code: import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class ThreadedService { private ExecutorS...

Exceptions on threadpool threads

Related: How to catch exceptions from a ThreadPool.QueueUserWorkItem? Exceptions on .Net ThreadPool Threads If a method throws an exceptions that is called by the ThreadPool.QueueUserWorkItem method where will the exception be thrown? or will it just be eaten? I mean it will never be thrown on the calling thread right? ...

Scheduler using Thread Pool & Priority Queue?

I'm gonna implement a scheduler using thread pool & priority queue in Java and I want to ask whether anybody knows any existing implementations or not, so I don't have spend time on it :-)... Basically, the ScheduledThreadPoolExecutor in java.util.concurrent package provides almost functions I need except the "priority queue". As I roug...

Exceptions on .Net ThreadPool Threads

Duplicate: How to catch exceptions from a ThreadPool.QueueUserWorkItem? I am queueing up multiple delegates on the .Net ThreadPool for a large number of independant remoting calls that themselves call multiple databases and other offline resources. By Queueing these calls on the ThreadPool I can run them concurrently and minimize th...

Thread pool with dependency support?

Does anyone know of a thread-pool like implementation for .NET that supports the following features: dependencies between tasks task priorities sub-tasks Basically I'd like to throw a bunch of tasks at this pool, with some inter-dependencies (ie. make sure task A completes before task B is allowed to start). Priorities would be used...

Waiting on a threadpool in C#

Duplicate of Wait for pooled threads to complete. I have X number of functions waiting to be given to a threadpool and the threadpool has a maxnumber of threads as 5.I need to find a solution to make the main thread wait until all the X functions are executed. Code looks like this : for(int i=0;i<Rulecnt;i++) ...

ThreadPool, QueueUserWorkItem and Deadlock on Shutdown

I just implemented a thread pool like described here Allen Bauer on thread pools Very simple implementation, works fine, but my application no longer shuts down. Seems that two worker threads (and one other thread, I guess the queuing thread) stuck in the function ntdll.ZwRemoveIoCompletion I remember to have read something about IO...

Is this an appropriate use of the ThreadPool? Can I be sure it'll start a thread for each task?

protected override void OnStart(String[] args) { ResultManager.PrepareCache(); ThreadPool.QueueUserWorkItem(ResultQueue.Process); ThreadPool.QueueUserWorkItem(StatusUpdater.UpdateStatus); ThreadPool.QueueUserWorkItem(GeneralQueue.RestartHungTests); ThreadPool.QueueUserWorkItem(ResultManager...

ThreadPool.QueueUserWorkItem with a lambda expression and anonymous method.

Passing two parameters to a new thread on the threadpool can sometimes be complicated, but it appears that with lambda expressions and anonymous methods, I can do this: public class TestClass { public void DoWork(string s1, string s2) { Console.WriteLine(s1); Console.WriteLine(s2); } } try { TestClass te...

How to catch exceptions from a ThreadPool.QueueUserWorkItem?

I have the following code that throws an exception: ThreadPool.QueueUserWorkItem(state => action()); When the action throws an exception, my program crashes. What is the best practice for handling this situation? Related: Exceptions on .Net ThreadPool Threads ...

.Net CF Running Thread for lifetime of an application

Hello, I am developing a .Net Compact framework application in C# which utilises some third party message queuing software installed on the device. I am fairly new to this environment and was wondering if I could run a few key concepts of the architecture past some wiser eyes to see if I am on the right track or how it could be improved...

Problem with Java ThreadFactory

IN my app I use a threadpool with a custom ThreadFactory. My code looks like: pool = Executors.newScheduledThreadPool(10, new TF()); class TF implements ThreadFactory { AtomicInteger count = new AtomicInteger(1); public synchronized Thread newThread(Runnable r) { Thread t = new Thread(r) ; t.setName("ThreadPool...

Why is Visual Studio skipping over my Exception from a ThreadPool work item?

I am aware of this other post, but it doesn't seem to apply to my situation. First off, here is my environment: Windows XP 64-bit SP3; Visual Studio 2008 w/ SP; .NET 3.5 SP1; WPF application. My problem is that I cannot seem to step to where my exception happens. It just keeps running instead of continuing the debugging session. Her...

Incompatible signatures when spawning thread with ThreadPool.QueueUserWorkitem

The error is: Method 'Private Sub ProcessToolWork()' does not have a signature compatible with delegate 'Delegate Sub WaitCallback(state As Object)'. What's the deal here? I've never experienced this error spawning a thread in this fashion. Here are my routine definitions: Public Sub ProcessWork() ThreadPool.QueueUser...

Synchronous vs asynchronous programming

When designing a server, we are considering two approaches: A asynchronous (select based) approach so the backend rpc can be parallelized in a single thread. A synchronous approach where each backend rpc is processed in another thread from the thread pool. There are trade offs: 1 has better performance and 2 has less code complexity...

Threading and lambda expressions

What is the difference between the two piecees of code below. will there be any issues using the second one. Scenario 1 private void Log(Exception e) { ThreadPool.QueueUserWorkItem(new WaitCallback(Log), e); } private void Log(object obj) { Exception e = (Exception)obj; Logger.Log(e); } Scenario 2 private void Log(Excep...