0

マルチプロセッシングをプロジェクトに統合しようとしていますが、うまくいきません。これは私が持っているものです:

import time
import winsound
from multiprocessing import Process
winsound.MessageBeep()
def pr1():
    while 1:
        winsound.MessageBeep()
        time.sleep(0.5)
if __name__ == '__main__':
    p = Process(target=pr1, args=())
    p.start()
    p.join()

while 1:
    print('hey')

しかし、実行すると、ビープ音が1回しか聞こえず、繰り返したいです。どうすればこれを完了できますか?

わかりましたプランb、私は今これを手に入れました、そして私は正しいだけです:

import time
import winsound
from multiprocessing import Process
def pr1():
    while 1:
        winsound.MessageBeep()
        print('its working') 
        time.sleep(0.5)
if __name__ == '__main__':
    print('correct')
    p = Process(target=pr1, args=())
    p.start()
    p.join()

while 1:
    print('hey')

そのため、プロセスの作成に問題があります。何か案は?

4

2 に答える 2

2

最後のインデント

while 1:
    print('hey')

ifブロックの一部にする

Windows で子プロセスを開始すると、指定された as の呼び出し可能オブジェクトが実行される前に、モジュールの内容が最初に実行されtargetます。モジュールは実行を終了しないため、これは発生しません。

2 番目のスニペット全体は次のようになります。

import time
import winsound
from multiprocessing import Process
def pr1():
    while 1:
        winsound.MessageBeep()
        print('its working') 
        time.sleep(0.5)
if __name__ == '__main__':
    print('correct')
    p = Process(target=pr1, args=())
    p.start()
    p.join()

    while 1:
        print('hey')
于 2013-08-07T12:48:36.373 に答える