[英]How to make this function wait for other function to finish?
我有以下功能。 此功能开始从设备读取设置。 首先,我设置了一个参数,以便我的程序知道它正在从设备读取,而不是设置要读取的设置,最后我向设备发送命令。
读取设备响应的功能知道应该检查要读取的参数,因为已设置了参数。 但是我面临一个问题:因为我只更改布尔值并执行一个很小的函数来发送命令,所以下面的函数在设备发送任何响应之前就完成了。
我试图通过在两者之间放置功能来修复此问题。 这解决了第一个程序段,但是如果我与其他程序一起尝试,整个应用程序将崩溃。 我的问题是如何使此函数暂停直到参数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只是我自己创建的一个类。 它保留一些有关程序当前状态的全局参数的信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.