ノンブロッキング印刷

4D 20 R4 では、4D 内部の印刷ジョブの管理が大幅に改善されました。4D は、複数の印刷ジョブを並行して実行できるようになり、アプリケーションの反応性が格段に向上すると同時に、並行する印刷ジョブの管理が容易になりました。

詳しく説明しましょう!

4D 20 R4 以前は、4D の印刷キューはブロッキングを発生させていました: ある印刷ジョブが実行中のときには、そのジョブが終了しない限り、他の印刷の試みは拒否されるかブロックされました。

現在の印刷ジョブが終了するまで待つように指示する “印刷” ダイアログ

4D 20 R4 でノンブロッキング印刷が追加されたことにより、4D はすべての印刷ジョブを同時に実行します。まず、複数のジョブが実行されているときのパフォーマンスが向上します。しかし、より重要なのは、長時間かかる印刷ジョブが、より高速な印刷ジョブをブロックしなくなったことです。全レコードの印刷や、複雑な印刷ジョブがある場合でも、他のプロセスで並行して印刷できるため、制限なく作業を続けることができます。3つ目の大きな利点は、印刷オプションがプロセスごとに管理されるため、複数のプロセスから印刷オプションを変更する際の相互作用が発生しないことです。

ノンブロッキング印刷は、4D 20 R4 以降に作成されたすべてのプロジェクトでデフォルトで有効になっています。それ以前に作成されたアプリケーションでは、ストラクチャー設定の互換性オプションで有効にする必要があります。

blank

互換性タブの “ノンブロッキング印刷” オプション

有効化しても、今まで通りの印刷ができます。ただし、考慮しなければならない変更が 1つあります: 印刷オプションが全プロセスで共通のものではなくなることです。そのため、特定のプロセスが SET PRINT OPTIONS、PRINT SETTINGS、または BLOB to print options で印刷オプションを変更しても、アプリケーション全体の印刷オプションは変更されません。これにより、プロセス間の印刷オプションの管理が容易になる一方で、以前のふるまいに依存したコードを使用している場合には、コードの一部を見直す必要があるかもしれません。

この機能がアプリケーションの印刷管理に役立つことを願っています。ご指摘やご質問がありましたら、遠慮なくフォーラムでお尋ねください。喜んでお手伝いさせていただきます!

Nicolas Brachfogel
- プロダクトオーナー & シニアデベロッパー - Nicolas Brachfogelは、2017年にシニアデベロッパーとして4Dに入社しました(4D Serverとネットワークを担当)。Apple Siliconのリリースを管理するプロダクトオーナーとして、ユーザーストーリーを書いて機能仕様に落とし込み、機能実装が顧客のニーズを満たしているかを確認する役割を担っています。Institut Supérieur d'Informatique Appliquée (INSIA) を卒業した Nicolas は、2001年にソフトウェア開発者としてのキャリアをスタートさせました。JavaとC++で数年間コーディングした後、ゲーム会社のクライアント・サーバー開発を専門に担当。サーバー開発者/アーキテクトとして、多くのゲーム(Dofus Arena、Drakerz、Trivial Pursuit Go!)のサーバーアーキテクチャに携わり、成功を収めてきました。