我试图在Python3.5中记录来自外部源的流数据。但是当我做以下事情时:
enable_streaming()
time.sleep(10)
stop_streaming()
似乎启用了流功能,python停止了10秒,然后流停止。可能由于time.sleep功能导致python停止10秒,实际上没有记录流数据。我使用wireshark来跟踪数据流,似乎目的地确认收到了enable_streaming()。
Enable_streaming()是一个从dll调用的函数。 这个dll在matlab中工作,这让我相信python的time.sleep()就是这里的问题。 我无法访问dll的源代码,但由于它在Matlab中工作,并且它只是一个简单的返回ctypes函数,我必须假设dll是正确的而不是问题。< / p>
调用启用流的python代码是:
import ctypes as ct
shim = ct.cdll.LoadLibrary('PCdll')
def enable_streaming()
f = shim.enable_streaming
f.restype = ct.c_int #return is int
result = f()
所以我的问题是:在python中是否有某种命令暂停但是没有&#34;暂停当前线程的执行&#34;像time.sleep()那样?
没有成功。似乎这不是问题所在:
import time
start = time.time()
enable_streaming()
while (time.time() - start < 10): # 10 seconds
pass # loop for 10 seconds
stop_streaming()
答案 0 :(得分:4)
我不确定这是否能解决问题,因为看起来没有线程可以做任何事情,但这是我通常在一段时间内做某事时所做的事情阻塞。
import time
start = time.time()
while (time.time() - start < 10): # 10 seconds
# loop for 10 seconds