在this示例中,創建一個異步請求,並在完成時從其回調中創建另一個異步請求。當第二個回調完成時,我怎麼能從第一個線程(主)通知?通常我會監視IAsyncResult,但第二個請求的創建不在第一個線程的範圍內完成,所以我無法訪問它。如果異步請求的AsyncCallback已完成,如何通知您?
1
A
回答
1
解決這個問題的最簡單方法可能不是這樣做 - 第二個回調可以同步(使用GetResponse
而不是BeginGetResponse
),那麼您可以只監視IAsyncResult。
或者,你也可以用同樣的方法,他們用它來保持主線程結束:創建另一個
private static ManualResetEvent allDone = new ManualResetEvent(false);
然後在第一個回調
allDone.WaitOne();
使用和調用
allDone.Set();
第二個回調
+0
這是一個很好的觀點,謝謝。出於好奇,你知道同樣的規則是否適用於異步請求和線程一樣 - 比如使用互斥鎖的能力和什麼? – Ford
+0
我認爲所有相同的規則都適用 - 異步調用僅在線程池中產生,而不是手動完成。 –
0
相關問題
- 1. 如何知道異步請求已完成響應。
- 2. 如何等待異步請求完成
- 3. 如何知道異步請求何時使用閉包完成?
- 4. 如何知道什麼時候異步post請求已完成WP8
- 5. Web請求異步完成
- 6. 已完成事件的AsyncCallback
- 7. 如何在Swift中完成外部異步請求之前完成內部異步請求?
- 8. Android - 如何獲取同步完成時的通知,請求與ContentResolver.requestSync同步()
- 9. 如何在完成塊內部異步執行同步請求
- 10. 如果AJAX請求完成
- 11. 如何知道什麼時候異步func已經完成c#
- 12. 等待異步節儉請求完成
- 13. 等待異步ajax請求完成
- 14. 等待異步請求完成
- 15. 運行函數之前如何確保異步請求已完成
- 16. 如何等待,直到嵌套異步jQuery AJAX請求已完成?
- 17. 通知我的ViewModels異步事件已完成
- 18. C#異步WebRequests:當所有請求已完成
- 19. 在繼續之前確保異步GET/POST請求已完成
- 20. 如何在活動完成時停止異步請求
- 21. 如何在Perl中輕鬆完成異步REST請求?
- 22. 如何使用OOP完成異步ajax請求返回值?
- 23. 通過node.js完成對Mongodb的異步請求
- 24. 如何使異步請求
- 25. 我如何做一個異步任務的多個請求,要知道當我完成所有請求
- 26. 檢查,如果異步任務已經完成,在路上
- 27. 服務器如何知道請求是同步還是異步?
- 28. 我如何知道我的異步方法已在WCF服務中完成?
- 29. WP7中的IAsyncResult,如何知道異步方法何時完成?
- 30. 無法完成您的請求。發生以下異常:java.lang.ClassNotFoundException:com.microsoft.schemas.office.excel.STCF
您使用的是什麼版本的.NET?你有權使用TPL嗎? – Servy
單聲道2.6這大致相當於.net 3.5 – Ford