2016-11-03 21 views
1

私はIAsyncResultのアプローチについて知っていますが、私の実験ではまだこれが一時的にUIを少しフリーズしています。私はGoogleをたくさんしてきましたが、UIを少しでもフリーズしない、これを実装する方法を見つけることができません。マルチスレッドの方法で関数からHTTP応答データを返す(C#/ VB)

私が望むのは、HttpWebReqeustのデータをスレッド化して返す関数です。私はこれを行うには良い方法が必要であり、それをスレッディングしないで、そしてある変数をtrueに設定し、その応答を共有変数に格納する必要があります。

これを行う方法はありますか?

+0

あなたのコードを投稿私は理解して – Softec

+0

役立つだろう - しかし、コードがhttps://msdn.microsoft.comです/en-us/library/system.iasyncresult(v=vs.110).aspx – Frederik

答えて

0

あなたはMSDN から言及したコードは、これらの行のUIをブロック行います

Thread.Sleep(0); 
Console.WriteLine("Main thread {0} does some work.", 
    Thread.CurrentThread.ManagedThreadId); 

// Wait for the WaitHandle to become signaled. 
result.AsyncWaitHandle.WaitOne(); 

あなたがここに完全であることを実行するためのブロッキング待機を見ることができます。 async方法はHttpResponseを取得するので、ために、あなたは簡単にdozens of the sample codeで、async/awaitキーワードを使用することができます。

// inside the method marked as async 
// prepare the Web Request 
Task<WebResponse> getResponseTask = req.GetResponseAsync(); 
WebResponse response = await getResponseTask; 
// process your result in the same context which have fired the request 
関連する問題