2012年2月28日火曜日

非同期呼び出しは既に進行中です。このメソッドを呼び出す前に、処理を完了させるか、またはキャンセルしなければなりません。

昔作ったアプリで下記のエラーが発生しました。
あれれ?と思い、過去のパソコン(WindowsXPx86 Pentium M)を引っ張りだし、テストすると動作する。
どうやら、Windows7x64(Core i7)では発生するエラーのようだ。


日本語:非同期呼び出しは既に進行中です。このメソッドを呼び出す前に、処理を完了させるか、またはキャンセルしなければなりません。
English translation: An asynchronous call is already in progress. It must be completed or canceled before you can call this method.
しくしく、仕方なしに処理の内容をlockステートメントを使用して直列化して対応した。

例)

lock(_smtp)
smtp.Send(...);

lock(_ping)

dic.Value.PingReply = _timeOut != 0 ? _ping.Send(dic.Key, _timeOut) : _ping.Send(dic.Key);

0 件のコメント:

コメントを投稿