Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win

x
?
Solved

DEFINITION: Different between Delegate.BeginInvoke and Thread.Start()

Posted on 2004-08-28
4
Medium Priority
?
907 Views
Last Modified: 2008-03-03
If I have a method of type

public void myMethod()
{

}

And I create a delegate void NewDelegate(void)

What is the actual difference between the following calls and how they are handled by .NET and the OS

NewDelegate del = NewDelegate(myMethod);
del.BeginInvoke(null, null);

and

Thread t = new Thread(new ThreadStart(myMethod));
t.Start();

I know the delegate will use a thread from the thread pool, but will the thread t as well?  What is the actual effect of one versus the other.
0
Comment
Question by:jjacksn
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
4 Comments
 
LVL 2

Accepted Solution

by:
shaival_trivedi earned 1000 total points
ID: 11919788
0
 
LVL 37

Assisted Solution

by:gregoryyoung
gregoryyoung earned 1000 total points
ID: 11921282
it will create a new thread delegate.begininvoke will not it will be queued into the thread pool.

however there are some caveats within the CLR that make the thread not necesarily exclusively owned.

If you look at the thread class you will read "Note   An operating-system ThreadId has no fixed relationship to a managed thread, because an unmanaged host can control the relationship between managed and unmanaged threads. Specifically, a sophisticated host can use the CLR Hosting API to schedule many managed threads against the same operating system thread, or to move a managed thread between different operating system threads." this pretty much says it all.
0

Featured Post

Hire Technology Freelancers with Gigs

Work with freelancers specializing in everything from database administration to programming, who have proven themselves as experts in their field. Hire the best, collaborate easily, pay securely, and get projects done right.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction Although it is an old technology, serial ports are still being used by many hardware manufacturers. If you develop applications in C#, Microsoft .NET framework has SerialPort class to communicate with the serial ports.  I needed to…
Calculating holidays and working days is a function that is often needed yet it is not one found within the Framework. This article presents one approach to building a working-day calculator for use in .NET.
Have you created a query with information for a calendar? ... and then, abra-cadabra, the calendar is done?! I am going to show you how to make that happen. Visualize your data!  ... really see it To use the code to create a calendar from a q…
Want to learn how to record your desktop screen without having to use an outside camera. Click on this video and learn how to use the cool google extension called "Screencastify"! Step 1: Open a new google tab Step 2: Go to the left hand upper corn…
Suggested Courses

636 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question