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