我如何在一个单独的线程中开始上课

本文关键字:线程 单独 开始 一个 | 更新日期: 2023-09-27 18:10:39

我想知道。我如何在一个单独的线程中开始上课?我想在一个单独的线程中处理外部事件。我是怎么做到的。我试过使用无限循环,但是没有用。

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));
    }

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

我如何在一个单独的线程中开始上课

您不应该在Run中显式地创建Task。只需在Run内部创建while(true)循环,并通过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);