私はPython3.5で外部ソースからストリーミングデータを記録しようとしています。私が行うときには、次の現在の実行を停止せずにPythonを一時停止するメソッド/関数はありますか?
ストリーミング機能が有効になることが表示されます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で動作しているため、単純なreturn ctypes関数なので、ここで問題はないと思います。
ストリーミングを有効に呼び出す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()
だから私の質問です:一時停止しますが、time.sleepのように「現在のスレッドの実行を一時停止」しないのpythonでのコマンドのいくつかの並べ替えがあります()はしますか?
成功しないと試みました。
import time
start = time.time()
enable_streaming()
while (time.time() - start < 10): # 10 seconds
pass # loop for 10 seconds
stop_streaming()
はい。スリーピングブロックpython。スレッドでストリーミングを行う必要があります。 – Falmarri
これは 'enable_streaming'がどのようなもので、どのように動作するかに依存します。それが自分のスレッドで動作していた場合、 'time.sleep'が働いていたはずです。スレッド内にある場合は、実際にこの機能を操作するために何かが必要です。あなたは単に "停止せずに休止する"ことはできません。 – user2357112
あなたは何をしようとしていますか? – TheBlackCat