3
說我創建任務CancellationTokenSource VS手動結束任務
bool aBoolean = true;
Task.Factory.StartNew(() =>
while(aBooloean) {
...
}
}
是更好由具有全球布爾退出任務退出任務?
或者使用CancellationTokenSource更好嗎?
何時適合使用CancellationTokenSource來結束任務?
當您使用CancellationTokenSource並使事情處於不一致狀態時,它是否會引發異常?
感謝
我不知道,所以如果我設置全局布爾值,它最終會接受更改嗎?或者只是因爲緩存中的變化而延遲更改? – TheWommies 2012-08-16 22:51:32
這取決於幾種情況;有時從不。只要你聲明它是volatile的,或者使用'Thread.VolatileWrite'和'Thread.VolatileRead',你就可以使用這樣的布爾字段。 'CancelationTokenSource'的好處之一是它與特定的實現分離。因此,您可以在您未編寫的多個任務或任何其他支持取消令牌的代碼之間共享令牌。如果您在多個類中並行執行任務,這非常有用。 – 2012-08-17 02:36:13