【发布时间】:2014-10-02 18:57:18
【问题描述】:
我知道我之前问过这个问题 - 但它涉及线程或任务。现在,我想在不使用线程或任务的情况下实现相同的目标,因为我受到限制(代码是 Lua 脚本)。现在,我想要实现的是这样的:
想象一个有 2 个按钮的表单。第一个按钮称为“运行”,第二个按钮称为“设置”。我希望 Run 显示 MessageBox 和文本:"The result was " + result。但是,我希望它仅在设置结果后才显示此MessageBox。因此,您单击“运行”按钮,它会停止该方法的执行(但线程不会卡住,因此它是异步的),然后当您单击“设置”按钮时,它将响应设置为 true 和代码运行按钮继续,它显示MessageBox。
如何在不使用线程和任务的情况下实现这一目标?请展示一些例子。此外,如果可以的话 - 即使我的 Lua 代码限制了它,也可以展示带有线程或任务的示例。到目前为止,我已经尝试使用布尔值的 TaskCompletionSource,但这涉及到 await 运算符的使用,我不能使用它,因为它是 C# sytnax 的一部分(在 Lua 中不允许)。
最好的问候。
【问题讨论】:
-
如果不使用后台线程或
async方法,您无法实现多次单击按钮,您的用户界面将冻结并且不允许您单击第二个按钮 -
@YuvalItzchakov 但是如果我使用异步方法,我将不得不使用 await 运算符,而我不能,因为你不能在 Lua 上使用它。
标签: c# multithreading asynchronous lua