Haskell 如何通过按键盘q按钮添加代码以退出此zeromq示例
希望通过按q退出程序来终止程序Haskell 如何通过按键盘q按钮添加代码以退出此zeromq示例,haskell,zeromq,Haskell,Zeromq,希望通过按q退出程序来终止程序 main :: IO () main = runZMQ $ do async $ clientTask "A" async $ clientTask "B" async $ clientTask "C" async serverTask liftIO $ threadDelay $ 5 * 1000 * 1000 进程间消息传递是ZeroMQ的强大功能,因此请使用它: 设计
main :: IO ()
main =
runZMQ $ do
async $ clientTask "A"
async $ clientTask "B"
async $ clientTask "C"
async serverTask
liftIO $ threadDelay $ 5 * 1000 * 1000
进程间消息传递是ZeroMQ的强大功能,因此请使用它:
aKbdMONITOR
-线程,用于监视键盘并扫描Q
aKbdMONITOR
-线程配备PUB
服务,以便在此类事件出现时向任何子线程进行广播
您必须在带有
MVar
的单独线程中使用软件事务性内存结构。MVar
以无值开始,并在线程之间共享。在单独的线程中,阻塞直到按下'q'
,并在MVar
中放置一个令牌。在您的工作线程中,如果MVar
有值,您将在每个递归步骤进行轮询。您是否可以直接发布此代码,我不知道语法以及应该使用哪个库或函数。此外,如何阻止haskell中的zeropmq?我投票将这个问题作为离题题来结束,因为它表明之前没有试图解决这个问题。你可能想阅读whathaveyoutried.com,并对StackOverflow社区表示一些尊重,该社区强烈鼓励发布高质量的问题,以及MCVE(代码的最小完整可验证示例)展示您迄今为止所做的尝试。您可能希望更新您的帖子,以达到最低合理的质量水平,并展示您尊重其他StackOverflow贡献成员的意愿。他们是喜欢回答有关MCVE相关问题的好问题的专业人士。享受StackOverflow贡献成员的身份,并支持此Commu网络礼仪
async $ clientTask "C"
async $ aKbdMONITOR -- Add central-service async thread
aKbdSCANNER <- socket Pub -- PUB-side adequate ZeroMQ Archetype
bind aKbdSCANNER "tcp://*:8123" -- yes, can serve even for remote hosts
aKbdSCANNER <- socket Sub -- SUB-side adequate ZeroMQ Archetype
connect aKbdSCANNER "tcp://ipKBD:8123" -- tcp transport-class remote ipKBD
--
-- + do not forget to subscribe
-- + use poll to scan