最佳解答者
生產者與消費者

問題
解答
-
ericstone 表示:我解釋一下你的意思:
因為目前做socket的接收 ,用的是非同步接收
可能會從多個client收到很多的訊息 加進去一個queue裡面 ,而另一個程式會把queue裡面的東西拿出來 拆碼完後執行,
然後執行的結果,還要組成特定字串,用socket傳出去。
因為我學c#不到一個月,所以流程方面不太懂,希望能給我一些提示
假設Server有一個Listener Socket A,負責接收來自各client的Socket B的訊息
當Socket A接收到資料就進行內部的程序,將得到的結果回傳給Soeckt B ?
這樣好像不用Queue吧?
Beginaccept->BeginReceive->處理->BeginSend->結束- 已標示為解答 ericstone 2009年3月11日 上午 05:00
所有回覆
-
ericstone 表示:我解釋一下你的意思:
因為目前做socket的接收 ,用的是非同步接收
可能會從多個client收到很多的訊息 加進去一個queue裡面 ,而另一個程式會把queue裡面的東西拿出來 拆碼完後執行,
然後執行的結果,還要組成特定字串,用socket傳出去。
因為我學c#不到一個月,所以流程方面不太懂,希望能給我一些提示
假設Server有一個Listener Socket A,負責接收來自各client的Socket B的訊息
當Socket A接收到資料就進行內部的程序,將得到的結果回傳給Soeckt B ?
這樣好像不用Queue吧?
Beginaccept->BeginReceive->處理->BeginSend->結束- 已標示為解答 ericstone 2009年3月11日 上午 05:00
-
子執行緒要把資料顯示在主執行緒的控制項物件要用Invok呼叫方法
因為子執行緒不能直接控制主執行緒的控制項
MSDN中有一些參考
Control.InvokeRequired 屬性
http://msdn.microsoft.com/zh-tw/library/system.windows.forms.control.invokerequired(VS.80).aspx
HOW TO:使用背景執行緒搜尋檔案
http://msdn.microsoft.com/zh-tw/library/3s8xdz5c(VS.80).aspx
論壇有一篇討論這個,寫的很清楚
Thread 與 Static
http://social.msdn.microsoft.com/Forums/zh-TW/233/thread/09dd6911-2539-403f-8a30-c5f837098b74/
給您參考 -
你是說你有一個類別假設叫Proc,其中有一個方法叫Test,你用這個方法去處理資訊?
所以程式是
ThreadPool.QueueUserWorkItem(New WaitCallback(AddressOf Proc.Test))
我沒這樣寫過,只能想像一下,而且我只會用笨方法
可以改成
ThreadPool.QueueUserWorkItem(New WaitCallback(AddressOf Test2))
在From1建立Test2 Sub
Private Sub Test2
回傳值=Proc.Test
在此用回傳值做Invoke
End Sub