Я очень плохо знаком с C # и Azure IoT.Возможно, проблему, которую я имею, очень просто решить.Я хотел бы обновить элемент пользовательского интерфейса, вызвав метод из облака.Но я получаю следующую ошибку:
Приложение вызвало интерфейс, который был назначен для другого потока.(Исключение из HRESULT: 0x8001010E (RPC_E_WRONG_THREAD))
Я знаю, что это как-то связано с тем, что пользовательский интерфейс работает в другом потоке.но я не нашел никакого решения.
Здесь код
public sealed partial class MainPage : Page
{
DeviceClient deviceClient;
public MainPage()
{
this.InitializeComponent();
deviceClient = DeviceClient.CreateFromConnectionString(GlobalConstant.DEVICE_CONNECTION_STRING, TransportType.Mqtt);
deviceClient.SetMethodHandlerAsync("UpdateTextfield", UpdateTextfield, null);
}
private void updateTextField ()
{
IncomingMessage.Text = "Update";
}
private Task<MethodResponse> UpdateTextfield(MethodRequest methodRequest, object userContext)
{
updateTextField();
string result = "{\"result\":\"Executed direct method: " + methodRequest.Name + "\"}";
return Task.FromResult(new MethodResponse(Encoding.UTF8.GetBytes(result), 200));
}
}