I write a heavily asynchronseous application.
I am looking for a way to queue method calls, similar to what BeginInvoke / EndInvoke does.... but on my OWN queue. The reaqson is that I am having my own optimized message queueing system using a threadpool but at the same time making sure every component is single threaded in the requests (i.e. one thread only handles messages for a component).
I Have a lot of messages going back and forth. For limited use, I would really love to be able to just queue a message call with parameters, instead of having to define my own parameter, method wrapping / unwrapping just for the sake of doing a lot of admnistrative calls. I also do not always want to bypass the queue, and I definitely do not want the sending service to wait for the other service to respond.
Anyone knows of a way to intercept a method call? Some way to utilize TransparentProxy / Virtual Proxy for this? ;) ServicedComponent? I would like this to be as little overhead as possible ;)
A call queue automatically distributes incoming calls from customers based on the call order. The caller remains on hold until an agent becomes available, at which point the call queue routes the customer to the rep. Call queues make it possible for a contact center to handle callers in an organized manner.
Call queue management is the oversight of call queues to make sure customer wait time is minimal, while also ensuring fair workload distribution to the agents working.
Once a Customer makes their selection in the Initial IVR, they are moved to the Queue IVR. This IVR is specifically created to handle calls currently in an Inbox's queue waiting for an Agent. In the Queue IVR, callers may: Hear a message that "all agents are currently busy" while waiting.
What is a Queue? In contact centers, a queue is where customers virtually wait to interact with an agent. If you have ever called customer service and had to listen to jazzy music while you waited to speak with an agent, you've been in a queue.
How about using lambdas?
I mean, why don't you create some Queue, and process them in manner like
while (!queue.Empty)
{
Action action = queue.Pop();
action(); // this calls your action
}
You can add actions very simply:
Queue.Add( ()=>{ /* any code you wish here */})
This is just a tip, I'm not sure if there is some Queue class, but it should be pretty straightforward to create one (and threadsafe!) by yourself.
The workaround could (and should) be much wiser, but the main point is there. Write me if you want to consult.
Pz, the TaskConnect developer
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With