在Windows窗体中在GUI上实现MultiThread

时间:2011-11-18 21:27:07

标签: multithreading user-interface c#-4.0 c#-3.0 multiprocessing

我有一个包含一些表单,类和方法的项目。有些方法有很多进程,我在方法上进行线程处理,工作正常。 那么,我如何在表单的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 :(得分:0)

我建议您查看BackgroundWorker Class

答案 1 :(得分:0)

查看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 ..)
);