2017-09-22 5 views

答えて

0

あなたは、コントローラのメソッドにタイムアウトを自分で実装することがあります。

public async Task<IActionResult> DoNotHang() 
{ 
    var timeout = TimeSpan.FromMinutes(1); 
    var operation = LongOperationAsync(); // no "await" here! 

    if (await Task.WhenAny(operation, Task.Delay(timeout)) == operation) 
    { 
     var result = await operation; // obtain result (if needed) 
     return Ok(result == null ? "Null" : "Not null"); 
    } 
    else 
    { 
     return Ok("Timed out (but still working, not cancelled)"); 
    } 
} 

は、タイムアウトで待っ-INGの1が完了すると、「その他」のタスクの取り消しを含めての詳細についてはAsynchronously wait for Task<T> to complete with timeoutを参照してください。

関連する問題