реализация MultiThread на GUI в форме Windows - PullRequest
0 голосов
/ 19 ноября 2011

У меня есть проект, который содержит некоторые формы, класс и метод. В некоторых методах много процессов, и я делаю потоковый метод, который работает нормально. Итак, как я могу сделать многопоточность или параллельную обработку на GUI моих форм? Я делаю это потому, что когда метод работает как GUI (например, формы и другой элемент управления), он работает медленно. Я написал этот код в классе Program, но у меня есть проблемы:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;

using System.Threading;

namespace WindowsFormsApplication1
{
    static class Program
    {
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);


            Parallel.Do(
              delegate()
              {
                  job();
              }
              );
        }

        public delegate void mydelegate();


        private static void job()
        {
            try
            {
                Application.Run(new frmMain());
            }
            catch
            {
            }
        }

    }
}

Как я могу ускорить это, используя многопоточность или параллельную обработку?

Ответы [ 2 ]

0 голосов
/ 19 ноября 2011

Взгляните на класс Task.

// Declare Task Object.
Task t = new Task(Job);
//Start another Task to do the job.
t.Start()
(...)
// Task ended
t.ContinueWith(task => 
 (.. process result if there is any ..)
);
0 голосов
/ 19 ноября 2011

Я бы рекомендовал взглянуть на BackgroundWorker Class

...