猿问

主线程中可能有backgroundworker DoWork吗?

主线程中可能有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;

        }


牛魔王的故事
浏览 84回答 1
1回答

回首忆惘然

不,这是不可能的。ABackgroundWorker将始终在单独的线程上完成其工作。到了只有一个 CPU 的系统。操作系统异步运行许多程序,每个程序可以有许多线程。操作系统将安排所有这些线程在任何可用的 CPU 上的某个时刻运行。这对于维持系统平稳运行至关重要,尤其是当系统只有一个 CPU 时。
随时随地看视频慕课网APP
我要回答