主线程中可能有后台工作人员DoWork吗?

时间:2019-08-19 08:26:01

标签: c# .net multithreading unity3d backgroundworker

后台线程DoWork是否在主线程中? 我的意思是,如果某些设备只有一个CPU,那有可能发生吗?

PS:我正在团结一致,所以请运行Android&IOS&Windows Platform。

    System.ComponentModel.BackgroundWorker bw = new System.ComponentModel.BackgroundWorker();
    bool inMainThread = false;
    int mainThreadId = System.Threading.Thread.CurrentThread.ManagedThreadId;

    bw.DoWork += (object sender, System.ComponentModel.DoWorkEventArgs e) =>
        {   // Is it possible equal true ??
            inMainThread = mainThreadId == System.Threading.Thread.CurrentThread.ManagedThreadId;
        }

1 个答案:

答案 0 :(得分:1)

否,这是不可能的。 BackgroundWorker将始终在单独的线程上进行工作。

对于只有一个CPU的系统而言。操作系统异步运行许多程序,每个程序可以有许多线程。操作系统将安排所有这些线程在任何可用CPU上的某个时间运行。这对于维持系统的平稳运行至关重要,尤其是在系统只有一个CPU的情况下。

如果您想了解更多信息,可以看看herehere,首先,我推荐this视频。

相关问题