2009-08-02 5 views

答えて

1

.NET BCLには直接の機能はありませんが、Windows I/Oのお手伝いをするクラスがいくつかあります。 1)オーバーラップクラスのインスタンスを初期化します。

2)コールバックでコールパックを呼び出します。

3)結果のNativeOverlapped(Packの戻り値)をWriteFileGatherに渡します。

4)私が理解しているように、操作が完了すると、コールバックはワーカースレッドで呼び出される必要があります。

いくつかの要件があるので、WriteFileGatherのMSDNドキュメントを必ず読んでください。データはシステムのページ境界に合わせなければなりません(x86-x64では4K、Itaniumでは8Kと考える)

0

FileStreamクラスは、ストリームをファイルに公開して、同期および非同期の両方の読み取りおよび書き込み操作をサポートします。 ストリーム上のBeginWriteのデフォルトの実装では、Writeメソッドが同期的に呼び出されます。これは、Writeが一部のストリームでブロックされる可能性があることを意味します。ただし、FileStreamやNetworkStreamなどのクラスのインスタンスは、インスタンスが非同期で開かれた場合、非同期操作を完全にサポートします。したがって、BeginWriteへの呼び出しはこれらのストリームでブロックされません。 FileStreamクラスはモノラルで全く同じように動作するはずです。

+0

私が探していたものではないが、非同期メソッドは依然として単一バッファを扱います。私はJavaのGatheringByteChannelに似た何かを探していました。 –

関連する問題