我有一種方法可以向設備發送3個Web請求,這會使其發送一條短信。 2個第一個請求分別設置了短信收件人和郵件正文。第三次觸發派遣。同步的「呼叫定製感知」方法返回值
很明顯,這種方法必須同步,因爲競爭將徹底搞亂短信配置過程。
這當然是非常漂亮的解是這樣的:
private object _smsLock
private bool SendSmsSync(string recipientNumber, string body)
{
lock(_smsLock)
{
// 3 web requests are sent here
// false is returned if something goes wrong
return true;
}
}
然而,這種解決方案的缺點是,我們必須在同時呼叫將進行的順序完全沒有控制。
包含Queue,ManualResetEvents和線程的大量代碼當然可以做到。但我仍然想知道是否有人知道更簡單的方法來做到這一點。
討論:)
謝謝你帶領我走向System.Threading.Tasks,這是我從來沒有聽說過(可恥的是我!) 。 – 2011-01-07 03:22:34
@Remy:順便說一句,如果你想要的細節,我有一個關於TPL(和相關命名空間)的** long **系列:http://reedcopsey.com/series/parallelism-in-net4/ – 2011-01-07 22:21:13