案例七:
在这里,总有种被作者套路的赶脚,众所周知,在Lua中不存在那种传统意义上的多线程,所谓的多线程都是基于协程而实现的,所以Lua中的线程也都只是那种协作式的多线程,而无法实现那种抢占式的多线程的效果,这也就导致有些效果我们无法得到实现~~~
如果有的时候真的需要那种抢占式的效果,可以考虑使用我之前提到的那个tolua的作者封装过的协程,功能上赶脚几乎可以替代真正的那种抢占式多线程了
在这个案例之中,其实主要可以学到的就是如何获取到原生的lua线程,并在C#端进行lua线程的挂起,激活等操作
主要核心代码如下:
string script =
@"
function fib(n)
local a, b = 0, 1
while n > 0 do
a, b = b, a + b
n = n - 1
end
return a
end
function CoFunc(len)
print('len = '..len)
print('Coroutine started')
local i = 0
for i = 0, len, 1 do
local flag = coroutin