Skip to main content

Asynchronous Threading, First Code

Synchronous threading will execute each thread/command in the order they have been created/started

Suppose there are 4 threads A, B, C, D
Application Starts at 10:00:00

time: 10:00:00: -> Start thread A (will run for 5 seconds)
time: 10:00:05: -> Start thread B (will run for 10 seconds)
time: 10:00:15: -> Start Thread B1 (will run for 5 seconds)
time: 10:00:20: -> Start thread C (will run for 15 seconds)

end application: total run time will be 35 seconds

Asynchronous threading will run the threads at the same time/ parallel processing, or we can say it will take the thread that is available at the earliest.

Application Starts at 10:00:00

time: 10:00:00: -> Start thread A (will run for 5 seconds) / Start thread B (will run for 10 seconds) / Start thread C (will run for 15 seconds)
time: 10:00:10: -> Start Thread B1 (will run for 5 seconds)

end application: total run-time will be 15 seconds (because the longest run-time is thread C)

So Async Threading save time, effective as well as well.




Example:-

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Net;

namespace thread_asynchronous
{
class Program
{
static void Main(string[] args)
{
DownloadAynchronously();

Console.WriteLine("waiting to finish on thread ...{0}...", Thread.CurrentThread.ManagedThreadId);

Console.ReadLine();

}

private static void DownloadAynchronously()
{
string[] urls =
{
"http://www.techcrunch.com/",
"http://www.isohunt.com/",
"http://www.google.com",
"http://www.developerscloud.org"

};

foreach (var url in urls)
{
var thread = new Thread(download);
thread.Start(url);
}

}

private static void download(object url)
{
var client = new WebClient();
var html = client.DownloadString(url.ToString());
Console.WriteLine("download{0} chars from {1} on thread {2}...",
html.Length, url, Thread.CurrentThread.ManagedThreadId);

}
}
}




Thanks, I hope you understand the basics of Async Threading.


If you like this post, please subscribe us
Enter your email address:


Comments

Popular posts from this blog

Convert your datatable into generic poco object in c# using linq, ado and reflections.

Follow @harshit_parshii The most common problem that we face these days is to create a common class and method that can be used across all the projects and codes. So today I will be sharing my code where you can see how to make and create a generic function without using entity framework for ado. net. The scenario is like you have an old software that uses stored procedure to return set of entities as a data-table, you do not want to re-write the back-end code as you are creating a web API in c# which needs to be delivered asap. You need to map these data tables to models as you might be using MV* pattern. So here we will be doing one to one mapping of model to data- table, and in similar fashion insert or update can also be done. So basically we are converting a data-table to list of strongly typed object model to do CRUD operations. So we have following things before hand. A helper class is referenced as the database(dbFactory) which executes ado. ne...

Run CSS specific to Internet Explorer - Browser Hack

Run CSS specific to Internet Explorer - Browser Hack Referencing to the following blog post, we are going to make CSS targeting exclusively to IE browser, to make it work first we should know what are media queries. A media query consists of a media type and at least one expression that limits the style sheets' scope by using media features, such as width, height, and color. Media queries, added in CSS3, let the presentation of content be tailored to a specific range of output devices without having to change the content itself. For Ex: < style > @media (max-width : 600px) { .facet_sidebar { display : none ; } } So below we will wrap the IE specific CSS rules in @media blocks and trick IE into rendering @media blocks that use media queries. Targeting only IE browsers Style rules defined in the following blocks will only be applied in IE, other browsers will ignore them. IE 6 and 7  @media screen\9 {     body { background: red; ...

Send a Fax in windows using faxcomexlib and TAPI in VB code .Net

An application that provides sending fax from faxmodem, connected to the computer, will be explained in the following post.  We can use Telephony Application Programming Interface (TAPI) and the Fax Service Extended Component Object Model (COM) API to send fax. The fax service is a Telephony Application Programming Interface (TAPI)-compliant system service that allows users on a network to send and receive faxes from their desktop applications. The service is available on computers that are running Windows 2000 and later. The fax service provides the following features: Transmitting faxes Receiving faxes Flexible routing of inbound faxes Outbound routing Outgoing fax priorities Archiving sent and received faxes Server and device configuration management Client use of server devices for sending and receiving faxes Event logging Activity logging Delivery receipts Security permissions The following Microsoft Visual Basic code example sends a fax. Note that...