1

私の Python アプリ (v2.7) には、基本的に Bluetooth GPS デバイスと通信する「while」ループがあり、データが受信されている限りループが続きます。本質的に、while ループは次のようになります。

> data = ""
> 
> if data == None:
>     print "Connection Failed" else:
>     print "Connection Established"
> 
> while True:
>     data = socket.recv(1024)

今私がやりたいことは、データが受信されないためループを終了するブルートゥースデバイスのスイッチがオフになるまで、プログラムの存続期間中継続的にループを実行している間、これをそのままにしておくことです。それでも、この while ループが続くので、データを解析する別のメソッドに移りたいと思います。

ループを実行したままにして、次のコマンドに進むにはどうすればよいですか? 糸通しは必要ですか?私はスレッドの概念に慣れていないので、しばらくお待ちください:)

ありがとう

4

2 に答える 2

0

ええ、基本的に同時に 2 つのことを行うことになるため、新しいスレッドを作成する ( を使用するthreading) か、より単純に新しいプロセスを作成する必要があります (multiprocessingまたは を使用するだけですos.fork) 。

最も簡単な方法は、この部分を関数に入れ、別のプロセスで関数を使用multiprocessingまたは開始することです。threading通常、複数のスレッドよりも複数のプロセスの方が奇妙さは少なくなりますが、参考までに。

于 2011-09-19T22:31:02.507 に答える
-1
received = ""
while True:
     data = socket.recv(1024)
     if not data:
         break # ends the while loop
     received+=data

do_stuff(received)
于 2011-09-19T22:55:38.150 に答える