多執行緒程式 出現已終止IO操作的問題

看板C_Sharp (C#)作者 (測試)時間20年前 (2005/12/16 21:12), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
各位版友好,小弟我最近寫了一個多執行緒的Tcp連線程式,會發生 "因為執行緒結束或應用程式要求 所以已終止I/O操作" 這樣的錯誤。我確定非主線執行緒並沒有結束,但是就出現這樣的錯誤一直不得其解 po上我程式碼概要請各位版友幫忙小弟我找找這隻臭蟲在哪裡 :] 這個例外發生在下面程式碼後面部分的 問題點,因為是非同步程式,所以主線當時正 跑到main()中的 do while第一次判斷!flag就會出錯(我每次試著在除錯時不同時間間距 按下 下一步都是在那邊出錯)。 如果需要詳細的程式碼,我放在我的網路位置上,進入的函式為 public Object[] getProductInformtion(string epc, TagEncoding encodingtype) 只要看其中line 244 RequestPMLInformation開始就好 http://us.f1.yahoofs.com/bc/78973302/bc/ %a7%da%aa%ba%a4%e5%a5%f3/EPCHandler.cs?bfdasoDBCH8R3PfS (請連起來) =================以下為程式碼概要============== main() { myThread.Start(); bool flag = false; do {}while( !flag ); } myThread() { call mySubroutine(); } mySubroutine() { some code.....; AsyncStartReceive(..., new AsyncCallBack(AsyncEndReceive), ...); } AsyncEndReceive() { mReceiveLength += mEPCConnecter.EndReceive(ReceiveIAsyncResult) ;<--問題點 some code....; } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.67.37.47 ※ 編輯: liunate 來自: 203.67.37.47 (12/16 21:47)
文章代碼(AID): #13ehqgA4 (C_Sharp)
文章代碼(AID): #13ehqgA4 (C_Sharp)