Tag: iasyncoperation

如何停止调用导致IAsyncOperation?

在我的应用程序中,我通知多个设备 如果设备无法访问且几秒钟内没有响应,我想取消呼叫。 我的代码是: await characteristic0.WriteClientCharacteristicConfigurationDescriptorAsync (GattClientCharacteristicConfigurationDescriptorValue.Notify); 经过一些研究后我发现通常可以传递CancelationToken(_ct)并执行此操作: 首先创建一个包含调用的操作: IAsyncOperation operation = characteristic0.WriteClientCharacteristicConfigurationDescriptorAsync (GattClientCharacteristicConfigurationDescriptorValue.Notify); 然后使用CancellationToken创建任务: Task task = operation.AsTask(_ct); 然后等待它: GattCommunicationStatus status = await task; 现在,即使CancellationToken的IsCancellationRequested -Property设置为true,也是如此。 电话不会停止。 并且,设备在第一行之后已经通知 ! 是不是应该在await之后发生? 我是否在使用令牌时犯了错误,或者这是一个更大的问题? 编辑 在与@Andrii Litvinov交谈之后,我将更多代码添加到我对问题的初步描述中。 这是整个方法: public async Task NotifyDevice(DeviceInformationDisplay deviceInfo, CancellationToken _ct) { try { BluetoothLEDevice device = await BluetoothLEDevice.FromIdAsync(deviceInfo.Id); service = device.GetGattService(new Guid(Service_UUID)); characteristic0 […]