我,直到條件變量設置爲true執行無限循環C#類。還有另一個類等待網絡消息,當接收到消息時,會調用另一個類來將條件變量修改爲true,以便它可以退出while循環。對於該消息的等待是在一個單獨的線程中完成:修改從另一個線程類屬性在C#
Modifier類:
public class Modifier{
Otherclass log;
private static NetworkStream theStream;
private StreamReader theInput;
public Modifier(Otherclass other, NetworkStream str)
{
this.log = other;
theStream = str;
theInput = new StreamReader(theStream);
Thread listenThread = new Thread(new ThreadStart(listen));
listenThread.Start();
}
public void listen()
{
while (true)
{
log.postMessage(theInput.ReadLine());
}
}
}
而其他類:
public class Otherclass{
bool docontinue = true;
public void postMessage(string input)
{
docontinue = true;
}
public void wait()
{
while(!docontinue)
{
}
}
}
的問題是,該方案被卡住的,而(!docontinue)雖然發送了一條消息。我懷疑問題是變量docontinue沒有被修改,但我不知道問題是否在其他地方。