在我更新VS for mac之前我使用
using (var cancelSrc = new CancellationTokenSource())
{
using (UserDialogs.Instance.Loading("Connecting", cancelSrc.Cancel, "Cancel"))
{
await device.Connect().ToTask(cancelSrc.Token);
}
}
连接ble设备
更新IDE出现错误"运算符'。'不能应用于void"
类型的操作数我使用
await Task.Run(() =>
{
cancelSrc.Token.ThrowIfCancellationRequested();
while (!cancelSrc.Token.IsCancellationRequested)
{
device.Connect();
}
},cancelSrc.Token);
而不是await device.Connect().ToTask(cancelSrc.Token);
但是当我在应用程序中点击加载屏幕时,除了保持连接之外什么也没做,似乎连接不会永远完成。
请给我一些帮助!
答案 0 :(得分:0)
似乎每个人都对我的问题不感兴趣,我自己解决它看起来不那么聪明。 这是我的解决方案:实现一个Task方法
public async Task ConnectDevice(IDevice device,CancellationTokenSource cancelSrc)
{
await Task.Run(() =>
{
device.Connect();
while ((cancelSrc.Token.IsCancellationRequested==false)&&(device.IsConnected() == false))
{
}
}, cancelSrc.Token);
}
当我想要连接时,我喜欢这样:
await ConnectDevice(device, cancelSrc);
这对我有用