等待调用进入异常
await call goes into Exception
我想从 BluetoothLE 示例中调用以下代码行:
static async Task<int> OpenDevice(DeviceInformation DeviceInfo)
{
// some code
await BluetoothLEDevice.FromIdAsync(DeviceInfo.Id).AsTask().TimeoutAfter(_timeout);
// some code
}
'FromIdAsync' 函数来自 'BluetoothLEDevice' Class:
[RemoteAsync]
public static IAsyncOperation<BluetoothLEDevice> FromIdAsync(string deviceId);
我遇到了这个异常:
Method not found: 'System.Threading.Tasks.Task`1<System.__Canon> System.Threading.Tasks.Task.FromCancellation(System.Threading.CancellationToken)'.
找了很多,关于'FromCancellation'方法的资料还不够。 'await' 完成时似乎会自动调用此方法。 (这是我自己的假设)
我正在考虑避免 'await' 调用。任何解决方法或帮助将不胜感激。我有 'DeviceInformation' 个具有设备 ID 的对象。我想让 'BluetoothLEDevice' 对象通过 'Services' 和 'Characteristics' 进一步移动。我正在构建一个 Windows 控制台应用程序。
正如'GazTheDestroyer'所述,我检查了所有的依赖项和包。安装了冗余包。在多个文件夹中有许多版本的 .NET Framework,例如 .Net_Framework、.NET_Portable、.NET_Core 和其他一些包。
在我的项目设置中:我使用了对来自 .NET_Framework 的 System.Runtime.WindowsRuntime.dll 程序集的引用。但我的项目目标指向 .NET_Core ,它也有相同的 DLL。
所以我更新自:
<TargetFramework>core2.2</TargetFramework>
至:
<TargetFramework>net48</TargetFramework>
这就是它无法正常工作的原因。
我想从 BluetoothLE 示例中调用以下代码行:
static async Task<int> OpenDevice(DeviceInformation DeviceInfo)
{
// some code
await BluetoothLEDevice.FromIdAsync(DeviceInfo.Id).AsTask().TimeoutAfter(_timeout);
// some code
}
'FromIdAsync' 函数来自 'BluetoothLEDevice' Class:
[RemoteAsync]
public static IAsyncOperation<BluetoothLEDevice> FromIdAsync(string deviceId);
我遇到了这个异常:
Method not found: 'System.Threading.Tasks.Task`1<System.__Canon> System.Threading.Tasks.Task.FromCancellation(System.Threading.CancellationToken)'.
找了很多,关于'FromCancellation'方法的资料还不够。 'await' 完成时似乎会自动调用此方法。 (这是我自己的假设)
我正在考虑避免 'await' 调用。任何解决方法或帮助将不胜感激。我有 'DeviceInformation' 个具有设备 ID 的对象。我想让 'BluetoothLEDevice' 对象通过 'Services' 和 'Characteristics' 进一步移动。我正在构建一个 Windows 控制台应用程序。
正如'GazTheDestroyer'所述,我检查了所有的依赖项和包。安装了冗余包。在多个文件夹中有许多版本的 .NET Framework,例如 .Net_Framework、.NET_Portable、.NET_Core 和其他一些包。
在我的项目设置中:我使用了对来自 .NET_Framework 的 System.Runtime.WindowsRuntime.dll 程序集的引用。但我的项目目标指向 .NET_Core ,它也有相同的 DLL。
所以我更新自:
<TargetFramework>core2.2</TargetFramework>
至:
<TargetFramework>net48</TargetFramework>
这就是它无法正常工作的原因。