public IThread CreateThread(IRuntime runtime, string name, Action <Action> dispatchMethod) { lock (_lock) { if (String.IsNullOrWhiteSpace(name)) { throw new ArgumentNullException(name); } if (_threadsByName.ContainsKey(name)) { throw new ArgumentException("Thread already exists: " + name); } IThread thread; if (dispatchMethod == null) { thread = new RuntimeThread(name, runtime, _logger, _errorHandler); } else { thread = new ExternalThread(name, runtime, _logger, _errorHandler, dispatchMethod); } _threadsByName.Add(name, thread); return(thread); } }
public IThread CreateThread(IRuntime runtime, string name, Action<Action> dispatchMethod) { lock (_lock) { if (String.IsNullOrWhiteSpace(name)) { throw new ArgumentNullException(name); } if (_threadsByName.ContainsKey(name)) { throw new ArgumentException("Thread already exists: " + name); } IThread thread; if (dispatchMethod == null) { thread = new RuntimeThread(name, runtime, _logger, _errorHandler); } else { thread = new ExternalThread(name, runtime, _logger, _errorHandler, dispatchMethod); } _threadsByName.Add(name, thread); return thread; } }