我负责一个Windows应用程序,它加载了用c ++编写的插件“script”dll。
该应用程序公开了一个基于Win32光纤的API,允许插件dll中的c ++'脚本'使用'yield'和'resume'类型调用 - 本质上是协同例程 - 来对脚本中的依赖项进行排序,而无需求助于异步事件架构。
现在,我正在考虑将应用程序移植到Mac和Linux,并且已经出现了使用像Qt这样的框架的选项。
但是,Qt似乎只支持正确的异步线程,而不是类似于Win32光纤的轻量级同步线程原语。在Cocoa或Qt等跨平台框架中是否存在Win32 Fibera模拟?
答案 0 :(得分:2)
答案 1 :(得分:0)
我不知道Cocoa,但在Qt中你不支持纤维。
答案 2 :(得分:0)
Qt中没有任何内容。但是,现有的协程库,编写一个在Windows上使用光纤而在POSIX上使用setjmp / longjmp的Qt风格包装并不难。
例如,here是一个很好的包装类中POSIX协程的实现。答案 3 :(得分:0)
也许你已经找到了一个不错的解决方案,但如果没有,(即使我还没试过),我认为Boost可能是你的朋友: