【发布时间】:2014-07-03 23:24:35
【问题描述】:
我在 Python 中使用 Pyzmq 使用 ZMQ 已经有一段时间了,我必须使用 CLRZMQ 绑定将我们的一些代码移植到 C#。我一直在谷歌四处寻找某种文档,但除了一些甚至无法正常工作的过时代码示例外,我几乎一无所获。
我现在想要实现的目标非常简单。我们有一个简单的函数来轮询一个超时的套接字,当超时时间过去时,它会引发一个自定义异常。这是它在 Python 中的样子:
def raise_on_timeout(sock, timeout):
"""
sock is a ZMQ socket
timeout is a timedelta object from datetime.
"""
if timeout is not None:
timeout = int(timeout.total_seconds() * 1000)
if not sock.poll(timeout):
raise TimeoutException("Communication timed out")
看起来很简单,对吧?该函数在 send_multipart 和 recv_multipart 之间调用,因此如果我们在监听数据时遇到超时,我们可以进行管理。
如何在 C# 中使用 CLRZMQ 实现类似的东西?
另外,如果有任何类型的用于 CLRZMQ 的 api 文档,如果您能指出我在哪里可以找到它,我将不胜感激。
谢谢
【问题讨论】:
-
出于好奇。这是什么语言?我假设是 python,但没有看到任何标签。 zeromq.com 网站有一些看起来更像 C 的例子......
-
@ebyrob 是的,在这种情况下是 Python。我最初在 Python 中使用 ZMQ,但不得不在 C# 中重现一些代码。