Take a look at the ManualResetEvent class, here is a sample:
using System.Threading;
using System;
public class Queue{
public static ManualResetEvent[] eventX;
static void WorkerFunction(object obj)
{
String str=(String)obj;
Console.WriteLine(str);
if(str == "item1") {
Thread.Sleep(5000);
eventX[0].Set(); // Set event state to signaled
}
else {
Thread.Sleep(2000);
eventX[1].Set(); // Set event state to signaled
}
}
static int Main(string[] args) {
Queue q = new Queue();
ManualResetEvent[] eventX = new ManualResetEvent[2];
Queue.eventX = eventX;
Queue.eventX[0] = new ManualResetEvent(false); //Set initial state to nonsignaled
ThreadPool.QueueUserWorkItem(new WaitCallback(WorkerFunction),"item1");
Queue.eventX[1] = new ManualResetEvent(false); // Set initial state to nonsignaled
ThreadPool.QueueUserWorkItem(new WaitCallback(WorkerFunction),"item2");
// Wait for all events to be signaled
WaitHandle.WaitAll(Queue.eventX,Timeout.Infinite,true);
return 0;
}
Quote:
}
Willy.
Quote:
> Hi,
> I'm creating a thread and I want this thread to raise an event or send a
> signal when it is finished. How can I do that?
> Thanks
> Erez
> *** Sent via Developersdex http://www.developersdex.com ***
> Don't just participate in USENET...get rewarded for it!