Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 3313334
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 17, 20262026-05-17T22:06:11+00:00 2026-05-17T22:06:11+00:00

In this MSDN article (Chapter 6 — Improving ASP.NET Performance), it says the following:

  • 0

In this MSDN article (Chapter 6 — Improving ASP.NET Performance), it says the following:

"Avoid Asynchronous Calls Unless You Have Additional Parallel Work

Make asynchronous calls from your Web application only when your application has additional parallel work to perform while it waits for the completion of the asynchronous calls, and the work performed by the asynchronous call is not CPU bound. Internally, the asynchronous calls use a worker thread from the thread pool; in effect, you are using additional threads.

At the same time that you make asynchronous I/O calls, such as calling a Web method or performing file operations, the thread that makes the call is released so that it can perform additional work, such as making other asynchronous calls or performing other parallel tasks. You can then wait for completion of all of those tasks. Making several asynchronous calls that are not CPU bound and then letting them run simultaneously can improve throughput.

This is confusing to me. My understanding was that when you make an asynchronous I/O call that no thread is used while waiting, but that an IOCP is set with a reference to your callback method. Is it true that you should only use async calls when you have parallel work? My understanding was that for an ASP.NET Web Service, it is often a good idea to change a WebMethod Foo to BeginFoo/EndFoo when you will be calling an I/O bound operation and implement the whole thing asynchronously.

Can someone help me understand what is meant by “asynchronous calls use a worker thread from the thread pool; in effect, you are using additional threads”, and the difference between WorkerThreads and IO-threads?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-17T22:06:12+00:00Added an answer on May 17, 2026 at 10:06 pm

    It’s important to make a clear distinction process intensive operations (like calculating the one billionth prime number) and IO bound operations (like making a web service request).

    A process intensive operation does require a thread to run on, so you are correct, using the ASP.NET asynchronous implementation has no benefit since you are still taking up an IIS thread.

    IO bound operations are different, they use operating system IO completion ports and do not require a thread. In this case it can really help to use the ASP.NET asynchronous model because the request processing will only require a thread for a short time to execute the IO request, and then another thread for a short time to process the IO callback and return the response. This can really help scalability.

    Jeff Prosise has a good post on the subject here:
    http://www.wintellect.com/CS/blogs/jprosise/archive/2010/03/29/asynchronous-controllers-in-asp-net-mvc-2.aspx

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I'm building a Windows service and following this MSDN article , but I'm stuck
This MSDN article stated that: processors are free to reorder this code internal static
According this MSDN article HttpApplication .EndRequest can be used to close or dispose of
I've found this MSDN article that explains how to monitor processes and services with
I have been playing with the demo code from this msdn article by Jeffrey
Some 4 years back, I followed this MSDN article for DateTime usage best practices
Taking this article on classes and structs as an example: http://msdn.microsoft.com/en-us/library/ms173109.aspx namespace ProgrammingGuide {
The MSDN article doesn't really explain this. List<MyObject> FirstList = new List<MyObject>(); // Add
I'm trying to implement the Media Player custom field control described in this MSDN
I have seen this syntax in MSDN: yield break , but I don't know

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.