2017-12-15 5 views
3

彼らは私と同じであるようですが、これらの2行のコードに違いはありますか?待機していないTask.RunとTask.RunSynchronouslyの違いは何ですか

new Task(myMethod).RunSynchronously(); 
// and 
Task.Run(() => myMethod()); 
+1

あなたは[C#MSDN RunSynchrononously](https://msdn.microsoft.com/en-us/library/dd321435(v = vs.110).aspx)の相違点を確認しましたか? – MethodMan

+0

@MethodMan私はそのタスクを考えました。実行が待たれていないときに実行が同期的に実行されますが、私はそれを考えて間違っていますか? – particulator

+0

あなたはドキュメンテーションを読んだ..? – MethodMan

答えて

3

コメントで述べたように、あなたはドキュメントの違いを見ることができます:

Task.Run(() => myMethod());

キュースレッドプールで実行するように指定された作業とその作業を表しTaskオブジェクトを返します。 。

new Task(myMethod).RunSynchronously();

現在のTaskSchedulerに同期タスクを実行します。

したがって、それらはもはや同一ではない。

関連する問題