将await运算符与Lua一起使用

时间:2014-07-21 13:54:02

标签: c# asynchronous lua

我正在使用NLua而我正在使用我正在注册的某个方法遇到问题。这是一个返回bool的任务并且它是异步的方法,这意味着我必须在它之前包含await运算符。但是,当我将其包含在我的Lua脚本中时,我收到语法错误。

如何在Lua脚本中包含await运算符?

编辑:我的目标是创建一个方法,在设置响应之前暂停执行,然后返回响应的结果。我相信这必须通过任务完成,但我不知道该怎么做。

我的旧代码是:

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

        return await this.Response.Task;
    }

然后,我会设置Response的结果。但是,现在我已经没有await运算符了,我不确定是否会这样做。脚本不在不同的线程上运行。我希望能够在不停止主线程的情况下停止执行。

1 个答案:

答案 0 :(得分:1)

  

这是一个返回bool任务的方法,它是异步的,这意味着我必须在它之前包含await运算符。

你没有 使用await方法返回任务 - 这只是C#的一个功能,可以更容易地编写异步代码。如果NLua没有相似的功能,那么你必须在没有它的情况下做到,例如通过Task.ContinueWith方法向任务添加延续。了解await主要是C#和VB中的语言功能非常重要......它本身不属于框架。