Script#中的setTimeout和setInterval函数的等效函数是什么?

12

如何在使用 Script# 的 C# 中使用 setTimeout()setInterval 方法?

例如,如何编写以下代码:setInterval(function(){alert("Hello")},3000);

1个回答

7

SetTimeout()SetInterval()Script 类的一部分(或者对于 Script# < 0.8 版本是 Window)。你可以像这样使用它们,使用内联委托:

int intervalid = Script.SetInterval(delegate { Window.Alert("Hello"); }, 3000);

或者您可以编写一个明确的处理函数:

Script.SetTimeout(TimeoutHandler, 3000);

void TimeoutHandler() {
    Window.Alert("Hello");
}

如果您想稍后放弃计时器间隔,可以使用ClearInterval()

Script.ClearInterval(intervalid);

我在Script类中没有看到这些方法。它们定义在哪些命名空间中? - Ivan Kochurkin
我已经修正了你的错误(你混淆了“Window”和“Script”)。 - Ivan Kochurkin
你的编辑是错误的。SetTimeout()和SetInterval()显然是脚本类的一部分。请参见:https://github.com/nikhilk/scriptsharp/blob/cc/src/Core/CoreLib/Script.cs - aschoenebeck
从0.8版本开始,它们将位于Script类中。它们曾经在Window中...但那是不正确的。例如,这些方法在node.js中也是可用的...实际上它们是在全局对象上定义的(在浏览器中恰好是window)。 - Nikhil Kothari
1
@NikhilK,我曾怀疑为什么我的Script#库中的Window类和aschoenebeck代码中的Script类包含这些函数。感谢你的解释。aschoenebeck,请问能否根据NikhilK的意见更正你的答案(你的代码适用于Script#版本>= 0.8)? - Ivan Kochurkin
哦,我明白了。我只检查了git主分支和cc分支,没有检查旧版本。我已经编辑了答案,指向以前版本的“Window”。我假设0.8很快会发布。 - aschoenebeck

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接