Luainterface结合C#实现热更新的思路 luac# 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 lua不是设计用来作为宿主的,一般都是c#作为宿主,lua作为脚本扩展功能。这样能热更新的部分是lua脚本提供的功能。最简单的办法就是每次需要的时候都从磁盘加载脚本并运行,这样替换掉脚本文件下次就使用新的了。不过这样每次加载有性能问题,如果系统负载不高那还可以(而且需要依赖于文件系统替换/保存文件的原子性)。复杂一点是需要监视脚本文件的变化,系统启动时就加载所有脚本,需要的时候运行。当脚本文件变化时,创建新的lua环境加载所有脚本,新的请求都使用新的环境处理,旧环境处理完之后释放掉。要注意脚本应该设计成无状态的,这样切换就很容易。如果有状态,切换的时候复制状态可能会很麻烦。当然这种方式只要脚本使用的语言和执行环境支持动态加载、释放,都可以热更新脚本。c#/.net也可以的,不过它不是为了当脚本设计的,所以用起来不是很方便。 文件重命名问题 Excel保存成03的 Workbook.SaveAs 怎么写啊 泛型转化的问题 rowfilter表达式中变量的特殊字符处理 请问各位,.net如何做windows组件服务,只要你的DLL,一注册就一直运行。 winform下datagridview列格式转换问题 怎样在VS2005中使用自己的查询字符串来配置数据源? 窗体样式 急 C#调用固定型号的视频头 一个简单问题(急). 寻求高人指教,能否帮助实现下面功能的代码 c#里面有没有Popup控件?
复杂一点是需要监视脚本文件的变化,系统启动时就加载所有脚本,需要的时候运行。当脚本文件变化时,创建新的lua环境加载所有脚本,新的请求都使用新的环境处理,旧环境处理完之后释放掉。
要注意脚本应该设计成无状态的,这样切换就很容易。如果有状态,切换的时候复制状态可能会很麻烦。当然这种方式只要脚本使用的语言和执行环境支持动态加载、释放,都可以热更新脚本。c#/.net也可以的,不过它不是为了当脚本设计的,所以用起来不是很方便。