[問題] 新手發問關於n個function之間傳遞異步資料

看板C_Sharp (C#)作者 (1234567.7654321)時間14年前 (2011/06/14 15:53), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串1/1
大家好,我才剛學CSharp沒多久 目前有個難關卡住了Q_Q public String AAAA () { BeginInvoke((asyncResult) => { ....... }, ...); ..... } public bool BBBB () { ..... String data = AAAA(); ..... } public void CCCC () { ..... if (BBBB()) { ...... } } AAAA裡面需用到異步function才能取得資料(BeginGetResponse), 因此造成第一時間return的值並不是正確的 目前想請問有方法可以讓AAAA中等待到callback在繼續往下跑, 返回值給BBBB嗎?使用過Thread.Sleep()去等待,但只是讓整個程式停滯, 連callback都跑不到 或是AAAA改成void,可是收到callback的值後,我該怎麼傳給BBBB呢? 同理,CCCC該怎麼知道BBBB這時候才收到值了呢? 我有看到delegate的資料,可是資質駑頓,有看沒有懂Orz 會拆成這樣是因為可以還有很多CCCC會用的 BBBB1、BBBB2用到 AAAA 這樣可以避免一大堆重複的code -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.63.100.2

06/14 16:15, , 1F
AAAA method => Future Pattern
06/14 16:15, 1F
文章代碼(AID): #1DznEMR1 (C_Sharp)
文章代碼(AID): #1DznEMR1 (C_Sharp)