私は3つのWebリクエストをデバイスに送信し、それによってデバイスにSMSを送信する方法があります。 2つの最初の要求はそれぞれ、受信者とメッセージ本文を設定します。 3番目がディスパッチを開始します。値を返す同期された "呼び出し順序認識"メソッド
レースコールがsms設定プロセスを完全に台無しにするので、この方法を同期させる必要があることは明らかです。
それは当然のことながら、このように非常にうまく解けるです:
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、threadsを含む重いコードを作成することはもちろん可能です。しかし、私はまだ誰かがそれを行うより簡単な方法を認識しているかどうかを知りたいと思います。
は議論:)
は、私が聞いたことがなかったSystem.Threading.Tasksに向かって私をリードいただきありがとうございます(私に恥!) 。 –
@Remy:BTW、詳細を知りたければ、TPL(それと関連する名前空間)の** long **シリーズはhttp://reedcopsey.com/series/parallelism-in-net4/ –