如何在单独的线程中启动类?

时间:2014-06-29 14:56:12

标签: c# task-parallel-library

我想知道。如何在单独的线程中启动类?我想在一个单独的线程中处理外部事件。我怎么能这样做我试图使用无限循环,但它没有帮助。

public class Class1
{
    public void Run()
    {
        Task.Factory.StartNew(() =>
            {
                while (true)
                {

                }
            }, CancellationToken.None, TaskCreationOptions.LongRunning, TaskScheduler.Default);
    }

    public void Show()
    {
        Console.WriteLine(AppDomain.GetCurrentThreadId().ToString(CultureInfo.InvariantCulture));
    }

当我在主流的控制台打印id中调用Show()方法时。

1 个答案:

答案 0 :(得分:0)

您不应在Task内明确创建Run。只需在while(true)中创建Run循环,然后通过Task.Run

调用它
public class Class1
{
    public void Run()
    {
       while (true)
       {
            // Do stuff in loop
       }
    }
}

然后叫它:

Task.Run(() => new Class1().Run(), CancellationToken.None, TaskCreationOptions.LongRunning, TaskScheduler.Default);