【发布时间】:2011-04-30 16:39:45
【问题描述】:
我需要设计完美的工作线程方法。该方法必须执行以下操作:
- 1) 从队列中提取一些东西(比如说一个字符串队列)并做一些事情
- 2) 处理类时停止并返回
- 3) 等待某个事件(该队列不为空)并且不消耗cpu
- 4) 在单独的线程中运行
主线程会将字符串添加到队列中并通知线程方法以继续并完成工作。
我希望您向我提供带有所需同步对象的模板。
class MyClass, IDisposable
{
// Thread safe queue from third party
private ThreadSafeQueue<string> _workerQueue;
private Thread _workerThread;
public bool Initialize()
{
_workerThread = new Thread(WorkerThread).Start();
}
public AddTask(string object)
{
_workerQueue.Enqueue(object);
// now we must signal worker thread
}
// this is worker thread
private void WorkerThread()
{
// This is what worker thread must do
List<string> objectList = _workerQueue.EnqueAll
// Do something
}
// Yeap, this is Dispose
public bool Dispose()
{
}
}
【问题讨论】:
-
请贴出你目前写的代码。人们通常不喜欢只为您编写代码。
-
米奇,会的。同意,我必须提供一些代码才能开始。
标签: c# .net multithreading