1

I know .NET just introduced Async, but in Linux it is implemented at OS level, does Windows OS has equivalent or is it just simulated on .NET Framework level ?

user310291
  • 35,095
  • 76
  • 252
  • 458

2 Answers2

4

Windows has several asynchronous I/O APIs. Overlapped I/O can be pretty much considered an extension of the regular I/O functions. And for high performance/scalability purposes, there's I/O Completion Ports.

(.NET's async has little to do with async I/O specifically. It's a language-level construct for doing anything asynchronously)

jalf
  • 236,466
  • 51
  • 337
  • 547
  • OK thanks would it be possible to bind .NET's async to async I/O ? – user310291 Jun 25 '11 at 10:38
  • I haven't really looked closely into .NET's async features, so no clue. You might want to ask that as a separate question. :) – jalf Jun 25 '11 at 13:49
2

Windows has something called Completion Ports which is used for asynchronous I/O.

Quote:

I/O completion ports provide an efficient threading model for processing multiple asynchronous I/O requests on a multiprocessor system.

It's not tied to any specific development framework.

Also have a look at Synchronous and Asynchronous I/O .

Mat
  • 195,986
  • 40
  • 382
  • 396
  • funny same question but the other way round for linux :) – user310291 Jun 25 '11 at 10:38
  • @user310291 see https://stackoverflow.com/a/2794607/2732969 on ["Linux and I/O completion ports?"](https://stackoverflow.com/q/2794535/2732969) . – Anon Dec 21 '19 at 11:03