Solved

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

Posted on 2004-08-28
4
904 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 250 total points
ID: 11919788
0
 
LVL 37

Assisted Solution

by:gregoryyoung
gregoryyoung earned 250 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

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

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

This article describes a simple method to resize a control at runtime.  It includes ready-to-use source code and a complete sample demonstration application.  We'll also talk about C# Extension Methods. Introduction In one of my applications…
This article is for Object-Oriented Programming (OOP) beginners. An Interface contains declarations of events, indexers, methods and/or properties. Any class which implements the Interface should provide the concrete implementation for each Inter…
Come and listen to Percona CEO Peter Zaitsev discuss what’s new in Percona open source software, including Percona Server for MySQL (https://www.percona.com/software/mysql-database/percona-server) and MongoDB (https://www.percona.com/software/mongo-…
This is a high-level webinar that covers the history of enterprise open source database use. It addresses both the advantages companies see in using open source database technologies, as well as the fears and reservations they might have. In this…

690 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