3

2つのプロセス間で通信し、退屈なダイアログが表示されることがよくあります。「他のアプリケーションがビジーであるため、このアクションを完了できません。ビジー状態のアプリケーションをアクティブにして問題を修正するには、[切り替え]を選択してください。」

次に、3つのボタンがあります:[切り替え...]、[再試行]、[キャンセル]。

とにかくダイアログを無効にできますか?

4

1 に答える 1

4

プロセス間通信呼び出しがサーバーから応答を受信せず、タイムアウトを通過すると、メッセージボックスが呼び出し側に表示されます(サーバー側の操作に時間がかかりすぎる)。

サーバーとクライアントの両方がコードである場合は、これをリファクタリングして、最初のメソッド呼び出しがアクションを開始してすぐに戻り、クライアントが完了時に更新をポーリングするか、コールバックを受信するなど、非ブロッキング方式で実行できます。それ以外の場合は、でMFC、を使用してこのダイアログを無効にすることができます。C++からのOLE要求タイムアウトの設定COleMessageFilter::EnableBusyDialogを参照してください。

于 2012-08-17T07:04:04.237 に答える