我試圖調試一些異步代碼,當我嘗試逐步執行的調試代碼行,一切直到它到達18號線在下面的代碼片段去罰款。運行該行後,調試器停止並退出調試模式。是否有一種特殊的方式來調試我缺少的異步程序,或者在代碼中有不正確的東西?爲什麼Visual Studio在此語句後退出調試模式?
1. private static void ReadAsynchronously(IAsyncResult ar)
2. {
3. StateObject state = (StateObject)ar.AsyncState;
4. //Data buffer for incoming data
5. byte[] bytes = new byte[1024];
6.
7. Socket readHandler = state.workSocket;
8.
9. //Flag variable for identifying the End of Character from the read message
10. bool pFlag = false;
11.
12. //String variable for store the reading data from the client socket
13. string content = string.Empty;
14. string data = string.Empty;
15.
16.
17. // Read data from the client socket.
18. int read = readHandler.EndReceive(ar);
19.
20. if (read > 0)
21. {
........
的EndReceive()調用將拋出一個異常,以指示異步操作失敗。不知道爲什麼調試器不會告訴你。查看輸出窗口中的「第一次機會」異常通知。使用Debug + Exceptions,Thrown複選框強制停止。 –
哦,對不起,沒看到我的回答之前,您的評論,無意劫持你的榮譽 – eFloh