我正在为移动/可穿戴设备开发MQTTnet应用程序。我已经在标准C#控制台应用程序和.Net Core应用程序中测试了我的代码,两者均按预期工作。我遇到的问题是,当我将代码移植到Xamarin Forms以便在Galaxy Watch上运行时。该应用程序将运行几秒钟,但随后将崩溃。我相信这可能是因为过于频繁地分配了标签文本?
我有一个MQTT发布器设备,以10ms的间隔输出一个简单的位置值。 Xamarin中的应用程序将锁定并最终崩溃。如果注释掉Label.Text分配,该应用程序将继续运行而不会崩溃。
这是我的Xamarin代码,有没有更好的方法来处理分配?
// Event Handler to the ApplicationMessageRecevied event
client.ApplicationMessageReceived += (s, e) =>
{
StatusLabel.Text = Encoding.UTF8.GetString(e.ApplicationMessage.Payload);
};
答案 0 :(得分:0)
我发现使用以下内容分配标签效果很好。我的发布者每隔2毫秒发送一次消息,手表稳定!
Device.BeginInvokeOnMainThread(() => {
PositionData.Text = Encoding.UTF8.GetString(e.ApplicationMessage.Payload);
});