private HandleWorkRequest ( WorkItem work ) : void | ||
work | WorkItem | |
Результат | void |
[System.Security.SecurityCritical] // auto-generated public virtual IMessage SyncProcessMessage(IMessage reqMsg) { // 1. Create a work item WorkItem work = new WorkItem(reqMsg, _nextSink, null /* replySink */); // 2. Notify the property to handle the WorkItem // The work item may get put in a Queue or may execute directly // if the domain is free. _property.HandleWorkRequest(work); // 3. Pick up retMsg from the WorkItem and return return(work.ReplyMessage); }
[System.Security.SecurityCritical] // auto-generated public virtual IMessage SyncProcessMessage(IMessage reqMsg) { // We handle this as a regular new Sync workItem // 1. Create a work item WorkItem work = new WorkItem(reqMsg, _nextSink, null /* replySink */); // 2. Notify the property to handle the WorkItem // The work item may get put in a Queue or may execute right away. _property.HandleWorkRequest(work); if (!_property.IsReEntrant) { // Remove the async lcid we had added to the call out list. //DBGConsole.WriteLine(Thread.CurrentThread.GetHashCode()+"] NR: InterceptionSink::SyncPM Removing async call-out lcid: " + ((LogicalCallContext)reqMsg.Properties[Message.CallContextKey]).RemotingData.LogicalCallID); _property.AsyncCallOutLCIDList.Remove( ((LogicalCallContext)reqMsg.Properties[Message.CallContextKey]).RemotingData.LogicalCallID); } // 3. Pick up retMsg from the WorkItem and return return(work.ReplyMessage); }