parallel処理の利用についてお聞きしたい点があります。
パラレル処理で2つの処理を走らせます。
一方は、処理が完了したことを示すイメージが出現するか。
もう一方は、処理中、定期的にenterコマンドを送る処理です。
理由としては、enterコマンドを押し続けないと処理が完了したことを示すイメージが出現しないということです。
このような並列処理を組み行っていますがうまくいきません。
処理の妥当性を含めご教示いただければと思います
parallel処理の利用についてお聞きしたい点があります。
パラレル処理で2つの処理を走らせます。
一方は、処理が完了したことを示すイメージが出現するか。
もう一方は、処理中、定期的にenterコマンドを送る処理です。
理由としては、enterコマンドを押し続けないと処理が完了したことを示すイメージが出現しないということです。
このような並列処理を組み行っていますがうまくいきません。
処理の妥当性を含めご教示いただければと思います
Parallelは「2つ(以上)の処理を複数プロセッサで並列に行う」わけではなく、片方のスレッドに待ちが発生したらもう片方が動く、という、一昔前のマルチスレッド的な動きになります。
処理の妥当性としては、Parallelを使用しても良いのですが、結局は繰り返しのループを組むことになると思います。
ですので、
もう一方は、処理中、定期的にenterコマンドを送る処理です。
理由としては、enterコマンドを押し続けないと処理が完了したことを示すイメージが出現しないということです。
という用途であれば、Do ~ While でループを組み、ループの中に「一定時間待機」「Enterコマンドを送信」「完了のイメージの存在確認」を纏めて入れてしまうほうが簡単な気がします。
(完了のイメージ存在確認の結果を、ループ条件として使用することでスッキリした構成にできるのではないでしょうか)
ありがとうございます。
次のように考えてみます。
初期処理にboolean値の変数をfalseに初期化
↓
do while
↓
delay 00:00:ss
↓
send hotkey (enter)
↓
On Element Appear
でboolean値がfalseの間は、loop処理
trueになれば抜け後続処理
これをdo whileの後判断としたいと思います。
些細なことですが、最後は Element Exists または Image Exists を使うと良いかも知れません。
最初に変数を初期化しなくても、Do~Whileであれば必ず1回はループ内の処理が行われるので、そこで変数がセットされます。
(細かい部分なので、可読性やその後の処理によっては書かれているやり方のほうが良い可能性もありますし、その場合は無視してください)
ありがとうございます。
参考になります。