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
  • 36,946
  • 82
  • 271
  • 487

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
  • 243,077
  • 51
  • 345
  • 550
  • 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
  • 202,337
  • 40
  • 393
  • 406
  • 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