2016-11-11 4 views
0

Thread.Priorityが同じ値に設定されていても、バックグラウンドスレッドはフォアグラウンドスレッドより低い優先度で実行されますか?バックグラウンドスレッドは、フォアグラウンドスレッドより低い優先順位で実行されますか?

Thread threadFG = new Thread(MyMethod);//foreground thread 

Thread threadBG = new Thread(MyMethod);//background thread 
threadBG.IsBackground = true; 

パフォーマンスの違いはあるのでしょう - :

は、以下のコードを考えてみましょうか?両方のスレッドにデフォルト優先順位を使用していることに注意してください。

MSDNを含む多くのWeb上の記事は、フォアグラウンドスレッドではないバックグラウンドスレッドが自動的にアプリケーション終了時に破棄されると述べています。 StackOverflowの多くの質問でも同じことが言えます。しかし、2つのパフォーマンスの違いについて話すリソースは見つかりませんでした。

バックグラウンドスレッドと同じ理由で、そのスレッドはフォアグラウンドスレッドよりも遅く実行されますか?

+2

[フォアグラウンドスレッドとバックグラウンドスレッド](https://msdn.microsoft.com/en-us/library/h339syd0(v=vs.110).aspx): "バックグラウンドスレッドは、フォアグラウンドスレッドと同じ* (My * emphasis *) –

+1

@Damien_The_Unbelieverは2つのスレッドを開始し、[Thread.Priority](https://msdn.microsoft)を調べることで確認できます。 .com/en-us/library/system.threading.thread.priority(v = vs.110).aspx)プロパティ –

答えて

2

Thread.Priorityが同じ値に設定されていても、バックグラウンドスレッドはフォアグラウンドスレッドより低い優先度で実行されますか?

なし。明示的に割り当てられない限り、すべてのスレッドはデフォルト優先度で始まります。 Normal

パフォーマンスには違いがありますか?

自分で測定してください。、パフォーマンスを測定するためにストップウォッチまたは同様のメカニズムを使用してください。スレッドの実行パフォーマンスは、ホストコンピュータのコンポーネント(CPUアーキテクチャ、コア数など)を含む多くのものに依存します。

バックグラウンドスレッドであるため、そのスレッドはフォアグラウンドスレッドよりも低速で実行されますか?

なし。 @ Damien_The_UnbelieverのMSDN linkによると、フォアグラウンドまたはバックグラウンドはパフォーマンスとは関係ありません。

関連する問題