作者linsu (1234567.7654321)
看板C_Sharp
标题[问题] 新手发问关於n个function之间传递异步资料
时间Tue Jun 14 15:53:55 2011
大家好,我才刚学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
1F:→ tfshnike:AAAA method => Future Pattern 06/14 16:15