JINTJavascript端如何创建定时器我正在使用JINT(https://github.com/sebastienros/jint)开发一个C#项目,我需要在我的JS上创建一个计时器,以便每次计时器时间设置为结束时它都可以在我的javascript上执行一个函数。我怎样才能做到这一点?我使用了setInterval或setTimeout函数,但它们似乎不是JINT的一部分,因为它是基于ECMASCRIPT的,并且这些函数不是本机的。谁能告诉我该怎么做?谢谢!!Jint不支持setInterval和setTimeout,因为它们是浏览器中WindowAPI的一部分。使用Jint而不是浏览器,我们可以访问CLR,说实话,它更通用。第一步是在CLR端实现我们的Timer,这是一个非常简单的Timer包装器,围绕内置的intSystem.Threading.Timer类:私人行动_actions;publicvoidOnTick(Delegated){_actions+=()=>d.DynamicInvoke(JsValue.Undefined,new[]{JsValue.Undefined});}publicvoidStart(intdelay,intperiod){if(_timer!=null)return;_timer=newTimer(s=>_actions());_timer.Change(延迟,期间);}publicvoidStop(){_timer.Dispose();_定时器=空;下一步是将JsTimer绑定到Jint引擎:varengine=newEngine(c=>c.AllowClr(typeof(JsTimer).Assembly))这是一个用法示例:以上是C#学习教程:如何在JINTJavascript端创建定时器,如果对大家有用,需要了解更多C#学习教程,希望大家多多关注—internalclassProgram{privatestaticvoidMain(string[]args){varengine=newEngine(c=>c.AllowClr(typeof(JsTimer).Assembly)).SetValue("log",newAction(Console.WriteLine)).Execute(@"varcallback=function(){log('js');}varTools=importNamespace('JsTools');vart=newTools.JsT计时器();t.OnTick(回调);t.Start(0,1000);");Console.ReadKey();}}本文采集自网络,不代表立场,如涉及侵权请点击维权联系管理员删除如需转载请注明出处:
