lua中携程的调用

function foo(a)
print(“foo”, a)
return coroutine.yield(2 * a)//第一次调用后会停止在这里,直到第二次调用才继续
end

co = coroutine.create(function ( a, b )
–print(“co-body”, a, b)
Geo.pushMsg(a);
Geo.pushMsg(b);
local r = foo(a + 1)
Geo.pushMsg( r)
local r, s = coroutine.yield(a + b, a - b) ///第二次会停止在这里
–print(“co-body”, r, s)
return b, “end”
end)

 coroutine.resume(co, 1, 10)  第一次调用 制定才参数为foo中的
 
 coroutine.resume(co, "x", "y")  第二次调用
 coroutine.resume(co, "x", "y")  第三次调用才结束整个过程 

猜你喜欢

转载自blog.csdn.net/llhllq2015/article/details/120020963