今天試着在項目的lua5.1裏用coroutine, 想「優雅的」解決對話框彈出的問題, 讓它有返回值。html
但遇到lua: attempt to yield across metamethod/C-call boundary。 在網上查了查,沒弄好,就不弄了。(對工做沒熱情的後果就是這樣,我要是愛它,我會把整個項目換成lua 5.2,5.3)lua
下面是幾篇文章,未來備用。還有本身的一點總結:spa
http://blog.codingnow.com/2012/06/continuation_in_lua_52.html線程
http://lua-users.org/lists/lua-l/2008-05/msg00181.htmlhtm
http://stackoverflow.com/questions/8459459/lua-coroutine-error-tempt-to-yield-across-metamethod-c-call-boundaryblog
http://www.cppblog.com/kevinlynx/archive/2008/08/12/58636.html博客
1,有人明確說主線程裏yield會出這個錯誤。雲風的博客裏給的解釋彷佛更本質一些。io
2,cppblog的那篇文章裏,明明寫成了一個(它就是爲了解決對話框問題),但它的代碼我幾乎是照搬,嵌入項目裏,仍是不行。它用的也是5.1。coding