Beispiel #1
0
        private void SubmitQueries(object sender, DoWorkEventArgs e)
        {
            // Parse Arguement Object
            List <string> queryList = (List <string>)e.Argument;
            string        outPath   = queryList.Last();

            queryList.RemoveAt(queryList.Count - 1);

            // Set Callbacks to update UI
            SetValueCallback2 d = new SetValueCallback2(SetProcessBarValue);
            SetValueCallback  f = new SetValueCallback(SetProgressBarvalue);

            // Disable Export Button
            progress.Dispatcher.BeginInvoke(d, false);

            List <BackgroundWorker> workers = new List <BackgroundWorker>();

            // For every query,
            //	configure new argument object
            //	create a new thread
            //	start the thread
            foreach (string query in queryList)
            {
                string combo_query = outPath + "\n" + query;

                BackgroundWorker worker = new BackgroundWorker();
                worker.WorkerReportsProgress = true;

                worker.DoWork             += new DoWorkEventHandler(SubmitQuery);
                worker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(QuerySumbitted);

                workers.Add(worker);

                worker.RunWorkerAsync(argument: combo_query);
            }


            // Wait for all threads to finish before finishing the worker thread
            bool isComplete = false;

            do
            {
                foreach (BackgroundWorker worker in workers)
                {
                    if (worker.IsBusy)
                    {
                        isComplete = false;
                        break;
                    }
                    else
                    {
                        isComplete = true;
                    }
                }
            } while (!isComplete);
        }
Beispiel #2
0
        private void QueriesComplete(object sender, RunWorkerCompletedEventArgs e)
        {
            SetValueCallback2 enable = new SetValueCallback2(SetProcessBarValue);

            progress.Dispatcher.Invoke(enable, true);
        }