是否有一些方法/函数可以在不停止当前执行的情况下暂停python?

时间:2016-07-01 20:19:35

标签: python python-3.x ctypes

我试图在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()

1 个答案:

答案 0 :(得分:4)

我不确定这是否能解决问题,因为看起来没有线程可以做任何事情,但这是我通常在一段时间内做某事时所做的事情阻塞。

import time

start = time.time()

while (time.time() - start < 10): # 10 seconds
    # loop for 10 seconds