2
我有以下功能。該功能開始從設備讀取設置。首先,我設置了一個參數,以便我的程序知道它正在從設備讀取數據,而不是設置正在讀取的設置,最後我會向設備發送命令。如何使該功能等待其他功能完成?
讀取設備響應的函數知道它應該檢查要讀取的參數,因爲要設置參數。但是我面臨一個問題:因爲我只更改布爾值並執行一個非常小的函數來發送命令,下面的函數在設備發送任何響應之前完成。
我試圖解決這個問題,把它放在函數之間。這解決了它的第一塊,但如果我嘗試與其他人,我的整個應用程序崩潰。我的問題是如何讓此功能暫停,直到參數IsReadingSettingFromDevice
設置爲false?
private void ReadSettings()
{
ProgramParameters.C.IsReadingSettingFromDevice = true;
ProgramParameters.C.SettingToReadFromDevice = Data.CMD_type;
SerialCom.SC.SendCommand(Data.CMD_type);
Debug.WriteLine("DEBUG INFO: SendCommand: " + Data.CMD_type);
while (ProgramParameters.C.IsReadingSettingFromDevice) ;
ProgramParameters.C.IsReadingSettingFromDevice = true;
ProgramParameters.C.SettingToReadFromDevice = Data.CMD_IPsettings;
SerialCom.SC.SendCommand(Data.CMD_IPsettings);
Debug.WriteLine("DEBUG INFO: SendCommand: " + Data.CMD_IPsettings);
//while (ProgramParameters.C.IsReadingSettingFromDevice) ;
ProgramParameters.C.IsReadingSettingFromDevice = true;
ProgramParameters.C.SettingToReadFromDevice = Data.CMD_version;
SerialCom.SC.SendCommand(Data.CMD_version);
Debug.WriteLine("DEBUG INFO: SendCommand: " + Data.CMD_version);
//while (ProgramParameters.C.IsReadingSettingFromDevice) ;
ProgramParameters.C.IsReadingSettingFromDevice = true;
ProgramParameters.C.SettingToReadFromDevice = Data.CMD_channels;
SerialCom.SC.SendCommand(Data.CMD_channels);
Debug.WriteLine("DEBUG INFO: SendCommand: " + Data.CMD_channels);
}
編輯:類ProgramParameters只是我自己創建的類。它保存有關程序當前狀態的全局參數的一些信息。
「我的整個應用程序崩潰」是什麼意思? –
它完全停止響應。 – 2pietjuh2
你是否擁有'ProgramParameters'類? – Michael