Hi,

 

  Could someone help me understand how asynchronous calls are
implemented in ROTOR?  My understanding is that when the C# compiler
sees a delegate declaration in the user program, it will automatically
create a MulticastDelegate-derived class and supply the definitions for
BeginInvoke() and EndInvoke().  Looking at the disassembler output of a
C# program, however, I find that the body of the BeginInvoke() method is
empty, and the method signature has a "runtime managed" attribute.  Does
this mean that the method body of BeginInvoke() will be automatically
provided by the runtime when the class is loaded?  Where can I find the
code that implements the methods?  Debugger trace seems to suggest that
BeginInvoke() calls ThreadpoolMgr::QueueUserWorkItem() to schedule the
function execution, while EndInvoke() eventually blocks in
Thread::DoAppropriateWaitWorker().

 

Thanks,

Wei  

 


===================================
This list is hosted by DevelopMentorŪ  http://www.develop.com
ASP.NET courses you may be interested in:

Guerrilla ASP.NET
15 March 2004, in Boston, MA
17 May 2004 in Torrance, CA
7 June 2004, London, UK

http://www.develop.com/courses/gaspdotnetls

View archives and manage your subscription(s) at http://discuss.develop.com

Reply via email to