public ClusteringViewModel()
 {
     clustering = new Clustering2();
     clustering.Progress = (n) =>
         {
             MyLib.Task.Utility.UITask(() =>
             this.Progress = (int)(n * 100));
         };
     clustering.Report = (n) =>
         {
             MyLib.Task.Utility.UITask(() =>
             this.ReportText += n);
         };
 }
        private void Button_Click_15(object sender, RoutedEventArgs e)
        {
            Analyze.Clustering2 clustering = new Analyze.Clustering2();
            clustering.ClusterTable = clusterTable;
            clustering.Report = (text) =>
            {
                MyLib.Task.Utility.UITask(() =>
                {
                    ClusteringRepotTextBox.Text += text + "\n";
                }, UIThread);

            };
            System.Threading.Tasks.Task.Factory.StartNew(() =>
                {
                    clustering.Run();
                }).ContinueWith((n) => clustering.Update());
        }