0
私は非同期Webリクエストを処理中です。メッセージリターンを行うにはレスポンスに依存する必要があります。同じスレッドにないオブジェクトを変更する方法
はそれを行うための最善の方法は何か
// creating request
string messageToReturn = string.empty;
request.BeginGetResponse(ar =>
{
HttpWebRequest req2 = (HttpWebRequest)ar.AsyncState;
var response = (HttpWebResponse)req2.EndGetResponse(ar);
// is it safe to do this?
messageToReturn = "base on respone, assign different message";
}, request);
// will i get any response message? i will always get empty right?
// since response is handle in another thread
return messageToReturn;
を次のようにSTHを行うには考えていましたか?
THX ...あなたは、私はちょうどこれを行うことができると思います:Dispatcher.BeginInvoke(()=> {messateToReturn = "" 何か ";}); – jojo
いや、でもそのメソッドが実行されますので、非同期的に呼び出され、messageToReturnを返すときに呼び出しが完了することは保証されません。応答が戻されるまでスレッドをブロックしたい場合は、ManualResetEventをチェックしてください。 –