を一時停止: MATLAB GUI imageMATLAB GUIは、私はのように見えますMATLABのGUIを持つ関数drawnowを使用したにも関わらず、ハングアップや
私が達成しようとしていますどのような時に一時停止を除き、MATLABは、継続的に深夜のチェックに保つということですユーザーはインターフェースを変更します。したがって、私はそれが真夜中かどうかを確認する必要があるため、バックグラウンドでwhileループを実行しています。そうであれば、私はいくつかの機能を実行します。このwhileループを含む関数は、ユーザー入力の変更が検出された後、つまりポップアップメニュー、押しボタン、テキストボックスなどのすべてのコールバック関数の終わりに検出された後に呼び出されます。これはwhileループでdrawnowを使用した理由です。ユーザーが何らかの変更を加えていくつかの計算を実行したい場合は、それが検出されます。計算の完了後、私はこのwhileループを持つ関数を再び呼び出します。
私のwhileループでdrawnowとpauseを使用しても、時には必ずしもMATLABがまだハングアップしておらず、GUIが応答しなくなり、ユーザーの入力を認識しないという問題があります。ここに私のコードのwhileループの一部です:
while 1
pause(0.1);
drawnow;
pause(0.1);
current_time=clock;
if current_time(4)==0
post_mortem;
end
end
私はそれはしかし、今の私の問題ではないことを、深夜の時間で連続的にpost_mortemを呼び出すよう上記のコードは効率的ではありません知っています。私の問題は、たとえ正午でさえ時折私が電話を切ることです。誰にもこれに対する解決策はありますか?以前の同様の質問に対する回答を探す際には、解決策を絞り込んで一時停止するように見えましたが、それは私のために働いていないようです。
ガイダンスをいただければ幸いです。
は、MATLABは、マルチスレッドではないので、継続的に(時間など)何かを確認するためにwhile
ループを使用すると、他の機能のブロッキングのすべての種類を引き起こすことが起こっているあなたに
'while'ループの代わりに' timer'を使ってみましたか?あなたはそのように多くの*優れたパフォーマンスを得るのが好きです – Suever