2016-12-20 1 views
0

ASP.NET MVCで非同期メソッドを理解しようとしています。私は、私の意見では非同期に動作するはずのシンプルなコントローラを作成しました。 しかし、私が/アクションを3つのタブで同時に実行すると、15,30、および45秒後に応答が得られます。 15,17,19秒というようにはならないのですか?同期と呼ばれるように私のアクションメソッドが同期して実行されているのはなぜですか?

public async Task<ActionResult> Index() 
    { 
     ViewBag.Title = DateTime.Now.ToLongTimeString(); 
     await AsynchMethod(); 
     ViewBag.Title += " - " + DateTime.Now.ToLongTimeString(); 
     return View(); 
    } 

第一および第二の要求が見えますが、第三ません:

public class HomeController : Controller 
{ 
    public async Task<ActionResult> Index() 
    { 
     await AsynchMethod(); 
     return View(); 
    } 

    public async Task<ActionResult> About() 
    { 
     ViewBag.Message = "Your application description page."; 
     await AsynchMethod(); 
     return View(); 
    } 

    public async Task<ActionResult> Contact() 
    { 
     ViewBag.Message = "Your contact page."; 
     await AsynchMethod(); 
     return View(); 
    } 

    private Task AsynchMethod() 
    { 
     return Task.Delay(15000); 
    } 
} 
+0

同じホスト(ローカルホスト)に対して(テスト実行時に)他のタブを開いていますか? – sellotape

+0

婚約してくれてありがとう...私は私の混乱を解決したと思う。答えは以下の通りです。 –

答えて

0

は、小さなコードの変更や別のテストの後、私は私の時計の観測が十分に正確ではなかったことに気づい

enter image description here

+2

あなたは質問を編集して追加する必要があります。答えとして投稿するのではありません。 – sellotape

関連する問題