以前 DOS GUI 编程的时代可不是啥事件驱动的。while (true) 循环检测是否被按下了某个按键。现在可以被替换成 await key-pressed-event;
我专门弄了一个 eventlet-pyqt 的开源库,还有个 qtng 的开源库。都是为了在 GUI 里面做协程开发。破除了 GUI 编程是异步的这种思维误区。
所有的异步场景都是协程的应用场景。
协程是一种异步函数调用。这是一种抽象。至于用纤程、线程还是进程来实现是不重要的细节。
事实上,c++ 里面可以用 async/await 语法实现一种协程,任务每次都被派发到线程池里面去异步执行。在这种情况下,就根本不使用啥“用户线程“、”纤程“、”绿线程“。
【 在 VincentGe 的大作中提到: 】
: 异步一个典型的模型是回调。是不是非常容易的解决了你的问题。
: 另,GUI编程对数是事件驱动的,没有你这个问题。
: 异步任务是可以取消的。对于一个无副作用的函数,没有区别。
: ...................
--
FROM 39.144.251.*