设置标签文本过于频繁会导致应用崩溃 - Xamarin.Forms



我正在开发用于移动/可穿戴设备的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);
};

我发现使用以下方法来分配标签效果很好。我的发布者以 2 毫秒的间隔发送消息,手表很稳定!

Device.BeginInvokeOnMainThread(() => {
PositionData.Text = Encoding.UTF8.GetString(e.ApplicationMessage.Payload);
});

最新更新