private void OnBackgroundStart(sCall call, out bool abort) { abort = false; lock (_runningThreads) { _runningThreads.Add(new NameValuePair(call.type.FullName + "." + call.Method.Name, Thread.CurrentThread)); } }
private void OnBackgroundEnd(sCall call, double milliseconds,Exception error,bool timedOut) { lock(_runningThreads){ for(int x=0;x<_runningThreads.Count;x++){ if (((Thread)_runningThreads[x].Value).ManagedThreadId==Thread.CurrentThread.ManagedThreadId){ _runningThreads.RemoveAt(x); break; } } } }
public BackgroundOperationRun(sCall call,DateTime start,long id) { _timer = null; _call = call; _id = id; _start = start; _runner = new Thread(new ParameterizedThreadStart(_Start)); _runner.IsBackground = true; }