主线程中可能有 backgroundworker DoWork 吗?

Is possible backgroundworker DoWork in main thread?

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

PS: 我在做 unity,所以 运行 Android & IOS & Windows 平台。

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

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

到了只有一个系统的地步CPU。 OS 运行 多个异步程序,每个程序都可以有多个线程。 OS 将在任何可用的 CPU 上的某个时间点将所有这些线程安排到 运行。这对于维持一个平稳的 运行ning 系统至关重要,尤其是当系统只有一个 CPU.

如果您想了解更多,可以观看 here or here and for a start I would recommend this 视频。