protected override void OnShown(EventArgs e) { base.OnShown(e); FunctionInvoker <object> threadController = new FunctionInvoker <object>(this.DoWork); this._ThreadResult = threadController.BeginInvoke(this.WorkComplete, threadController); }
Func <object> Func0(FunctionInvoker funcInvoke) { return(() => { var child = funcInvoke.invoke.CreateChild(BlockType.Method); funcInvoke.body(child); return child.GotoValue; }); }
protected override void OnShown(EventArgs e){ base.OnShown(e); // Create Delegate FunctionInvoker<object> threadController = new FunctionInvoker<object>(DoWork); // Execute on secondary thread. threadResult = threadController.BeginInvoke(WorkComplete, threadController); }
protected override void OnShown(EventArgs e) { base.OnShown(e); // Create Delegate FunctionInvoker <object> threadController = new FunctionInvoker <object>(this.DoWork); // Execute on secondary thread. this.threadResult = threadController.BeginInvoke(this.WorkComplete, threadController); }
protected override void OnShown(EventArgs e) { // Execute default OnShown event handler base.OnShown(e); // Create Delegate var threadController = new FunctionInvoker <object>(DoWork); // Execute on secondary thread. threadController.BeginInvoke(WorkComplete, threadController); }
Func <object, object> Func1(FunctionInvoker funcInvoke) { return((arg1) => { var param1 = funcInvoke.arguments[0]; var child = funcInvoke.invoke.CreateChild(BlockType.Method); var exprCtx = ((ExpressionContext)child.Context); exprCtx.AddVariable(param1.ValueType, param1.Name, arg1); funcInvoke.body(child); return child.GotoValue; }); }
public void Create_IfInstanceAndMethodIsInherited_UsesReflectedType() { // Arrange MethodInfo method = GetMethodInfo(typeof(Subclass), "InheritedReturnVoid"); IJobActivator activator = CreateDummyActivator(); // Act IFunctionInvoker invoker = FunctionInvokerFactory.Create(method, activator); // Assert Assert.IsType <FunctionInvoker <Subclass, object> >(invoker); FunctionInvoker <Subclass, object> typedInvoker = (FunctionInvoker <Subclass, object>)invoker; Assert.IsType <ActivatorInstanceFactory <Subclass> >(typedInvoker.InstanceFactory); }
public void Create_IfStatic_UsesNullInstanceFactory() { // Arrange MethodInfo method = GetMethodInfo("StaticReturnVoid"); IJobActivator activator = CreateDummyActivator(); // Act IFunctionInvoker invoker = FunctionInvokerFactory.Create(method, activator); // Assert Assert.IsType <FunctionInvoker <FunctionInvokerFactoryTests, object> >(invoker); FunctionInvoker <FunctionInvokerFactoryTests, object> typedInvoker = (FunctionInvoker <FunctionInvokerFactoryTests, object>)invoker; Assert.IsType <NullInstanceFactory <FunctionInvokerFactoryTests> >(typedInvoker.InstanceFactory); }
Func <object, object, object, object, object> Func4(FunctionInvoker funcInvoke) { return((arg1, arg2, arg3, arg4) => { var ps = funcInvoke.arguments; var param1 = ps[0]; var param2 = ps[1]; var param3 = ps[2]; var param4 = ps[3]; var child = funcInvoke.invoke.CreateChild(BlockType.Method); var exprCtx = ((ExpressionContext)child.Context); exprCtx.AddVariable(param1.ValueType, param1.Name, arg1); exprCtx.AddVariable(param2.ValueType, param2.Name, arg2); exprCtx.AddVariable(param3.ValueType, param3.Name, arg3); exprCtx.AddVariable(param3.ValueType, param4.Name, arg4); funcInvoke.body(child); return child.GotoValue; }); }
public FObject Invoke(FunctionInvoker fi, FObject[] args) { var gotTypes = args.Select(x => x.Type).ToArray(); bool j = CallObjectTypes.Contains(gotTypes[0]); for (int i = 1; j && i < ArgumentTypes.Count; i++) { var item = ArgumentTypes[i]; if (item != FObjectType.Any && item != gotTypes[i]) { j = false; break; } } if (!j) { throw new RuntimeException($"Call did not match function signature of function '{Name}'. " + $"Expected {ArgumentTypes.PrettyArray()}, got {gotTypes.PrettyArray()}."); } return(Invokable.Invoke(fi, args)); }
public override CompiledDelegate Compile(CompileContext ctx) { var parent = CompileContext.Current; var func = CompileFunction(ctx); //if (!string.IsNullOrEmpty(name)) //{ // parent.AddVariable(ValueType, name); //} return((invoke) => { FunctionInvoker funcInvoke = new FunctionInvoker(invoke); var del = func(funcInvoke); if (!string.IsNullOrEmpty(name)) { ((ExpressionContext)invoke.Context).AddVariable <Delegate>(name, del); } return del; }); }
public static Function From(string name, FunctionInvoker invoker) { return(new Function(name, invoker)); }
public Function(string name, FunctionInvoker invoker) { Name = name; Invoker = invoker; }
public static Function From(string name, FunctionInvoker invoker) { return new Function (name, invoker); }
public void WhenPressesTheSaveButton() { var invoker = new FunctionInvoker(new DelegateServiceProvider(TypeResolver)); invoker.InvokeAsync(_createDocument); }