示例#1
0
        //编译成委托
        public Delegate Compile(Type type = null)
        {
            il.REmit(OpCodes.Ret);

            int ThreadId = Thread.CurrentThread.ManagedThreadId;

            if (key != null)
            {
                ThreadCache.TILDict.TryRemove(ThreadId, out il);
                ThreadCache.TKeyDict.TryRemove(ThreadId, out key);
                DebugHelper.End();
            }
            else
            {
                ThreadCache.ILDict.TryRemove(ThreadId, out il);
                DebugHelper.End();
            }
            if (type == null)
            {
                return(newMethod.CreateDelegate(MethodType));
            }
            else
            {
                return(newMethod.CreateDelegate(type));
            }
        }