public void Compile() { if (compiledMethod != null) { return; } DynamicMethod generatedMethod = new DynamicMethod( "_Compiled_", null, Compiler.parameterTypes, typeof(Runner).Module, true ); generatedMethod.DefineParameter(1, ParameterAttributes.In, "memory"); generatedMethod.DefineParameter(2, ParameterAttributes.In | ParameterAttributes.Out, "pointer"); generatedMethod.DefineParameter(3, ParameterAttributes.In, "input"); generatedMethod.DefineParameter(4, ParameterAttributes.In, "output"); generatedMethod.DefineParameter(5, ParameterAttributes.In, "canSeek"); Compiler compiler = new Compiler(this); compiler.ILGen = generatedMethod.GetILGenerator(); compiler.Emit(); compiledMethod = generatedMethod.CreateDelegate(typeof(RunnerDelegate)) as RunnerDelegate; }
private void StartThreadService() { // ThreadStart runnerThreadStart = new ThreadStart(RunnerThreadLoop); _thdRunner = new Thread(runnerThreadStart); _runnerDelegate += new RunnerDelegate(Runner); // start worker threads. if (_thdRunner.IsAlive == true) { _thdRunner.Resume(); } else { _thdRunner.Start(); } }
private void StartThreadService() { // ThreadStart runnerThreadStart = new ThreadStart(RunnerThreadLoop); _thdRunner = new Thread(runnerThreadStart); _runnerDelegate += new RunnerDelegate(Runner); // start worker threads. if ( _thdRunner.IsAlive == true ) { _thdRunner.Resume(); } else { _thdRunner.Start(); } }