我是新來的多線程在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