我是新来的多线程在C#中,并在所有线程的东西混淆。 这里就是我想有:发信号通知睡眠线程
public class TheClass
{
Thread _thread;
bool _isQuitting;
bool _isFinished;
object jobData;
public void Start()
{
jobData = new object();
_thread = new Thread(new ThreadStart(Run));
_thread.Start();
}
private void Run()
{
while (!_isQuitting)
{
lock (jobData) // or should i use mutex or monitor?
{
DoStuff();
}
// sleep till get triggered
}
DoCleanupStuff();
_isFinished = true;
}
public void AddJob(object param)
{
jobData = param;
//wake up the thread
}
public void Stop()
{
_isQuitting = true;
//wake up & kill the thread
//wait until _isFinished is true
//dispose the _thread object
}
}
在这个类
,什么是最有效的方法来实现注释掉短语和整体性能?
就在几个意见:①你'jobData'对象最初是空的,所以如果用户调用'AddJob',它崩溃之前调用'Run'。为了解决这个问题,你可以把'object jobdata;'改成'object jobdata = new object();'。 ②'Run'方法似乎根本没有使用它的参数,所以你可以删除它并使用'ThreadStart'而不是'ParameterizedThreadStart'。 – Timwi 2010-08-14 23:35:39
编辑,谢谢。 – Slantroph 2010-08-14 23:39:23