如何在第二个线程上运行整个类?

时间:2012-12-12 10:30:07

标签: c# multithreading

我正在深入研究多线程,找到了一些很好的教程,但我还有一些问题。

我想到了如何运行一个函数async,(参见这个tutorial)有四个例子可以实现。

但是在我正在开发的应用程序中,我希望在一个单独的线程中运行整个类。我正在寻找这样的东西:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;

namespace multithread_test
{
    class Program
    {
        Program()
        { }
        RunInBackground RIB;

        void StartBackgroundWorker()
        {
            // how do  I get RIB to run in the background?
            RIB = new RunInBackground();
        }

        //somefunction to listen to the CallEventToUpdateGUI
    }


    //This class should run in a different thread than class Program
    class RunInBackground
    {
        void RunInBackground()
        { }

        void Function1()
        {
            //somefunction
        }

        void Function2()
        {
            // somefunction
        }

        void Function3()
        {
            Function1();
        }

        void CallEventToUpdateGUI()
        {
            //call a event to update gui
        }

    }

1 个答案:

答案 0 :(得分:2)

线程是关于代码的执行而不是关于它的定义。你不能做这个。 你可以做的只是运行在线程上的代码。

你也可以在另一个线程上实例化一个类,但顺便说一句,它不是它的定义。