0
我想在一個方法中運行一個任務並返回Task產生的值,我該怎麼做呢?如何返回一個Threading.Task(布爾型)的值
這就是我想:
Private function blahblahblah as boolean
Return Threading.Tasks.Task.Factory.StartNew(Of Boolean)(
Function() As Boolean
For X As Integer = 0 To RetryInterval
NetworkAvaliable(String.Format(NoWebsiteRetryMessage, RetryInterval - X), True, StatusControl)
Next
Return False
End Function)
End Function
重要的是要澄清,我想這樣做沒有外界的方法,如創建其他變量例如是這樣的:
dim value as boolean
Private function blahblahblah as boolean
Threading.Tasks.Task.Factory.StartNew(Of Boolean)(
Function() As Boolean
For X As Integer = 0 To RetryInterval
NetworkAvaliable(String.Format(NoWebsiteRetryMessage, RetryInterval - X), True, StatusControl)
Next
value = False
End Function)
Return value
End Function
我想避免這樣的事情。
那麼你* *開始一個任務 - 但你不會知道結果,任務產生,直到它完成,你願意嗎?這是開始任務的關鍵。你真的需要考慮你的方法何時會返回,什麼時候你的任務會完成。 –
我想知道Return語句將等待返回的「對象」...例如,當你返回一個String.Split時,首先將字符串分割,然後在分割返回之後......真的,如果這是一個原因downvote ......好吧。 – ElektroStudios
是的,但'TaskFactory.StartNew'旋轉了一個新的任務。這就是它的重點。如果你不想讓代碼單獨運行,爲什麼你會使用新的任務?我認爲你需要仔細考慮任務的性質以及你真正想要達到的目標。 –