使用 Lua 中的 await 运算符

我正在使用NLua,我在注册一个方法时遇到问题。这是一个返回Task<bool>类型的方法,并且是异步的,这意味着我必须在它之前加上await操作符。然而,当我在Lua脚本中包含它时,我遇到了语法错误。

如何在Lua脚本中包含await操作符呢?

编辑:我的目标是创建一个方法,在设置响应之前暂停执行,然后返回响应的结果。我认为这必须使用任务来完成,但我不确定如何完成。

我的旧代码是:

public async Task<bool> SomeMethod()
{
    this.Response = new TaskCompletionSource<bool>();

    return await this.Response.Task;
}

然后,我只需设置Response的Result。然而,现在我没有了await操作符,我不知道该怎么做。脚本不在不同的线程上运行。我希望能够停止执行而不会停止主线程。

点赞
用户22656
用户22656

这是一个返回 bool 类型 Task 的异步方法,这意味着我必须在调用前使用 await 运算符。

你不必使用 await 来调用返回 task 的方法-这只是 C# 的一个特性,使异步编程更容易编写。如果 NLua 没有类似的功能,您将不得不在不使用 await 的情况下使用它,例如通过使用 Task.ContinueWith 方法添加任务的 continuation。重要的是要理解,await 主要是 C# 和 VB 中的一种语言特性,它并不是框架的组成部分。

2014-07-21 13:56:55