public Workbench()
{
this._bayesianNetwork = new BayesianNetwork("Empty");
this._bayesianNetworkVariableAbbreviations = new Dictionary<string, string>();
this._scenarios = new ObservableCollection<IScenario>();
this._scenarios.CollectionChanged += ScenariosChanged;
this._scenariosInternal = new List<ScenarioRecord>();
this._scenariosThreadCancel = false;
this._scenariosThread = new Thread(ThreadMainScenariosInference);
this._scenariosThread.Name = "Inference";
this._scenariosThread.Start();
this._learningTasks = new ObservableCollection<ILearningTask>();
this._learningTasks.CollectionChanged += LearningTasksChanged;
this._learningTasksInternal = new List<LearningTaskRecord>();
this._learningTasksThreadCancel = false;
this._learningTasksThread = new Thread(ThreadMainLearningTasks);
this._learningTasksThread.Name = "Learning";
this._learningTasksThread.Start();
this._networkLayoutOptions = new NetworkLayoutOptions();
this._networkLayout = new NetworkLayout();
this._networkLayoutInternal = new NetworkLayoutRecord(_bayesianNetwork, _networkLayout, this.NetworkLayoutOptions);
this._networkLayoutThreadCancel = false;
this._networkLayoutThread = new Thread(ThreadMainNetworkLayout);
this._networkLayoutThread.Name = "Layout";
this._networkLayoutThread.Start();
this.ComparisonMetric = Model.ComparisonMetric.SymmetricKLDivergence;
}