【发布时间】:2015-09-14 11:09:12
【问题描述】:
在处理用户请求的 .Net 控制台应用程序上工作并将每个处理请求的结果发送回用户(使用 TCP 套接字)
出于测试目的,我创建了少量线程来在多个线程上完成这项工作,但在转向生产时,我需要能够并行处理尽可能多的请求。
我对使用 ThreadPool 或 TPL 感到困惑。 (每个请求的平均处理时间为 3 秒)有什么建议吗?
这是我当前的代码:
public void Start()
{
started = true;
Thread looper = new Thread(new ThreadStart(BufferRunner));
looper.Start();
Thread looper2 = new Thread(new ThreadStart(BufferRunner));
looper2.Start();
Thread looper3 = new Thread(new ThreadStart(BufferRunner));
looper3.Start();
Thread looper4 = new Thread(new ThreadStart(BufferRunner));
looper4.Start();
}
private void BufferRunner()
{
while (started)
{
BufferedCommand command = null;
lock (buffer)
{
if (buffer.Count > 0)
command = buffer.Dequeue();//buffer.Enqueue happens when user request is received
}
if (command != null)
ExecuteCommand(command);
}
}
【问题讨论】:
标签: .net multithreading task-parallel-library