“任务”不包含“AsAsyncOperation”

时间:2016-11-17 12:23:25

标签: async-await uwp

如果我想从UWP类库中公开此方法

public async Task<int> PlaySound(SoundGroup soundGroup, int index, Duration duration)

然后我需要创建一个包装器

public IAsyncOperation<int> PlaySoundAsync(SoundGroup soundGroup, int index, Duration duration)
{
    return PlaySound(soundGroup, index, duration).AsAsyncOperation();
}

但同样的伎俩用这种方法失败了

public async Task PreLoadSoundPlayers()

因为这个

public IAsyncOperation PreLoadSoundPlayersAsync()
{
    return PreLoadSoundPlayers().AsAsyncOperation();
}

给出错误

  

'Task'不包含'AsAsyncOperation'的定义,并且没有扩展方法'AsAsyncOperation'接受类型'Task'的第一个参数可以找到

在UWP类库中公开没有数据返回类型的异步方法的正确模式是什么?

1 个答案:

答案 0 :(得分:2)

找到它 - 我需要使用操作而不是操作。

public IAsyncAction PreLoadSoundPlayersAsync()
{
    return PreLoadSoundPlayers().AsAsyncAction();
}