私は c++ でコーディングしており、画像ファイルを非同期で読み込もうとしています。いくつかの調査の後、boost::asio と boost::iostreams を使用してそれを行うことについての言及がいくつか見つかりました。ただし、boost::asio のドキュメントと例はほとんどがソケット関連であるため、あまり役に立ちません。
必要なものは次のとおりです。
- ファイルを非同期にロードし、ロード完了時にコールバック関数を実行します。 (私の場合、コールバック関数は v8 JavaScript エンジンを使用して JavaScript 関数オブジェクトを実行します)
- コールバック関数は、メイン関数と同じスレッド内で実行する必要があります。(v8はスレッドセーフではないため。)
- Linux と Windows で作業する必要があります。(個別の実装は問題ありません)
したがって、このようなものは本当にいいでしょう:
async_read("test.jpg", &the_callback_function);
関数はブロックされるべきではなく、ファイルの読み込みが完了すると、「the_callback_function」を実行する必要があります。
編集: ジョシュペリーが指摘したように、boost::asio はメインスレッドにディスパッチできない可能性があります。したがって、boost::asio と boost:iostreams のみに制限する必要はないと思います。この要件を満たすことができる c/c++ ライブラリは問題ありません。ありがとう!