Re: Overlapped file IO
Alex Ivanoff <[email protected]>
| Newsgroups | gmane.comp.windows.devel.dotnet.clr |
|---|---|
| Message-ID | <[email protected]> |
Definitely. -----Original Message----- From: Discussion of development on the .NET platform using any managed language [mailto:[email protected]] On Behalf Of Peter Obiefuna Sent: Wednesday, November 21, 2007 21:53 To: [email protected] Subject: Re: [DOTNET-CLR] Overlapped file IO Alex, Could you let us share your work when you're done. P -------------------------------------------------- From: "Alex Ivanoff" <[email protected]> Sent: Monday, November 19, 2007 8:43 PM To: <[email protected]> Subject: Re: [DOTNET-CLR] Overlapped file IO > .NET async file IO is a subset of Win32 overlapped IO. > > Looks like I am going to have to implement it myself. > > ________________________________ > > From: Discussion of development on the .NET platform using any managed > language on behalf of Dan Farino > Sent: Mon 11/19/2007 18:18 > To: [email protected] > Subject: Re: [DOTNET-CLR] Overlapped file IO > > > > Hmm...sounds like our definitions of "overlapped" are a bit different > here. > > I interpreted it as just meaning passing in the flag > FILE_FLAG_OVERLAPPED (which is the same numeric value as > FileOptions.Asynchronous) to CreateFile and using the OVERLAPPED > structure for performing async I/O with ReadFile and WriteFile. > > So while you can't touch the fields of the OVERLAPPED struct yourself, > FileStream is using it under the covers to accomplish the async I/O. > > -----Original Message----- > From: Discussion of development on the .NET platform using any managed > language [mailto:[email protected]] On Behalf Of Alex > Ivanoff > Sent: Monday, November 19, 2007 3:56 PM > To: [email protected] > Subject: Re: [DOTNET-CLR] Overlapped file IO > > FileStream.BeginXXX/EndXXX methods are asynchronous, but not overlapped. > You cannot specify where to start reading/writing (Win32 > OVERLAPPED.Offset/OffsetHigh members) nor can you issue multiple > read/write operations against the same file handle at the same time. > From MSDN: > > "EndRead must be called exactly for every call to BeginRead. Failing to > end a read process before beginning another read can cause undesirable > behavior such as deadlock." > > This is not overlapped at all. > > > -----Original Message----- > From: Discussion of development on the .NET platform using any managed > language [mailto:[email protected]] On Behalf Of Dan Farino > Sent: Monday, November 19, 2007 17:42 > To: [email protected] > Subject: Re: [DOTNET-CLR] Overlapped file IO > > Yes it does (except on Windows 9x). For FileStream, use the constructor: > > public FileStream(string path, FileMode mode, FileSystemRights rights, > FileShare share, int bufferSize, FileOptions options) > > Make sure you pass in FileOptions.Asynchronous. Then, use > BeginRead/Write and EndRead/Write. This uses overlapped I/O. (The only > part that is still synchronous is the constructor since there is no > async version of the underlying CreateFile Win32 call.) > > Other classes such as Socket also use overlapped I/O when you use > BeginXXX/EndXXX. In the case of Socket and others, you don't need to > pass any special flags in like you have to with FileStream's > FileOptions. > > -----Original Message----- > From: Discussion of development on the .NET platform using any managed > language [mailto:[email protected]] On Behalf Of Alex > Ivanoff > Sent: Monday, November 19, 2007 2:44 PM > To: [email protected] > Subject: [DOTNET-CLR] Overlapped file IO > > Does .NET 2.0 have support for overlapped IO or do I need to implement > one myself? > > Alex > > =================================== > This list is hosted by DevelopMentor(r) http://www.develop.com > <http://www.develop.com/> > > View archives and manage your subscription(s) at > http://discuss.develop.com <http://discuss.develop.com/> > > =================================== > This list is hosted by DevelopMentor® http://www.develop.com > <http://www.develop.com/> > > View archives and manage your subscription(s) at > http://discuss.develop.com <http://discuss.develop.com/> > > > > =================================== > This list is hosted by DevelopMentor® http://www.develop.com > > View archives and manage your subscription(s) at > http://discuss.develop.com > =================================== This list is hosted by DevelopMentor® http://www.develop.com View archives and manage your subscription(s) at http://discuss.develop.com