2016-10-29 6 views
0

私は、オブジェクトtrmterminalであり、terminalが文字列をGUIに書き込む関数write()を持っています。このオブジェクトをmultiprocessing.Processのオブジェクトに渡していますが、このプロセス内で関数write()を呼び出すと機能しません。何も起こりません。 何が起こっていますか?オブジェクトをプロセスPythonに渡す

+0

コードはどこですか? '端末'とは何ですか? 'flush()'メソッドを持っていますか? 'write()'の後に呼び出してみましたか? – mhawke

+0

@mhawke私は自分のコードを見せたいですが、残念ながらそれは大きなプロジェクトであり、コードは大きく変調されており、 "自分のコード"が効率的でないことを示すようにしています。しかし、私は 'terminal'はtkinterのGUIであると言うことができるので、マルチプロセスモジュールに関してはtinterは安全ではないかもしれません –

+0

しかし確かに[MCVE](http://stackoverflow.com/help/) mcve)? – mhawke

答えて

1

trmオブジェクトをmultiprocessing.Processのターゲットとして渡していますか?私が知っている限り、ターゲットは呼び出し可能でなければなりません。この場合、trmではなく、trm.writeをプロセスのターゲットとして渡す必要があります。ターゲットに引数を渡す必要がある場合は、ターゲットに渡す引数のタプルを取得するargsパラメータを渡すことができます。

関連する問題