Xamarin android使用来自不同线程的bool标志

时间:2017-08-23 22:41:30

标签: c# android multithreading xamarin mqtt

我正在使用m2mqtt。

我的程序是一个遥控器,可以打开和关闭露台盖百叶窗

我正在尝试编写预设功能。按一个按钮,系统中的所有电机都将进入预设位置。

我一直在研究几种方法,我想到了一个我喜欢的,我只是不知道它是如何工作的。

----设置----

我想做的是让马达朝正确的方向移动。然后锁定主线程直到电机完成(类似)

private bool flag = false;

private void presets () 
{

flag = true;
-----
code to get motors moving in right direction
-----
client.MqttMsgPublishReceived -= regularMessagesReceive
client.MqttMsgPublishReceived += presetMessagesReceive
while(flag)
{
}
client.MqttMsgPublishReceived -= presetMessagesReceive
client.MqttMsgPublishReceived += regularMessagesReceive

}

void presetMessagesReceive(object sender, MqttMsgPublishEventArgs e)
{
//incoming messages indicate all motor positions

if (allMotorsInPosition) 
{
        flage = false; //when all motors have reached their preset positions 

}


}

在mqtt接收消息线程中将标志更改为false会在主线程中释放while循环?????????

你可能会问我为什么要锁定所有东西......我不能用遥控器上的其他按钮让它们混淆系统。所以我要么必须启用= false所有这些,要么只是占用线程直到预设通过

0 个答案:

没有答案