[問題] Thread間通訊

看板C_Sharp (C#)作者 (涼雨)時間14年前 (2011/07/21 18:15), 編輯推噓2(205)
留言7則, 4人參與, 最新討論串1/1
我想要在不同的Thread傳遞訊息 以往都是在MFC使用SendMessage或PostThreadMessage等等的方式 但是我查了一些資料 好像C#大部分都是用Invoke+Delegate的方式處理 還有查到一些零零散散的方式,但感覺起來都是需要UI的Thread來搭配 但是我現在要處理的兩個Thread不是UI Thread,沒辦法使用Invoke 目前是想要在A Thread將命令推入Queue裡,然後在Thread B撈出命令執行 因為這兩個Thread會一直處理其他事情,所以應該也沒辦法使用Block Queue? 所以就想說在A直接傳Message到B,B去處理就好 請問C#有處理Message的方法嗎? 找不太到,需要一些提示,是有看到一些網頁是說沒有,只能用WIN API 可是總會覺得.net應該不會沒有這種還滿重要的東西吧? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 211.72.229.163

07/21 18:34, , 1F
兩個執行緒如果是同一隻程式的話,可以直接傳遞資料吧
07/21 18:34, 1F

07/21 19:17, , 2F

07/21 19:57, , 3F
一樓,我怕同時存取同參數,會出問題,想說用message
07/21 19:57, 3F

07/21 19:57, , 4F
二樓,感謝,我會去研究看看
07/21 19:57, 4F

07/22 09:37, , 5F
二樓..我去查,好像你推薦的方式..也是需要UI..
07/22 09:37, 5F

07/22 16:34, , 6F
http://ppt.cc/g9jh 這裡看看有沒有
07/22 16:34, 6F

07/23 18:09, , 7F
如果不太複雜的話就直接傳遞 & 加上 lock
07/23 18:09, 7F
文章代碼(AID): #1E9_mfUV (C_Sharp)
文章代碼(AID): #1E9_mfUV (C_Sharp)