Profilo di 耘芃不凡之星辰FotoBlogElenchiAltro Strumenti Guida
29/10/2009

怎么说也要对得起一个多GB的容量啊

又不是开心农场。
我在想如果把这一个多GB的图形资源丢掉,那么美工的成本就可以省出来用在系统设计上(不过好像3D模型一个也要好几个MB,所以估计也省不出多少成本来)。但是好的系统和好的画面哪个更能吸引玩家这个问题不容易得出结论。

程序方面这一个星期以来进展不大,又是在多线程的问题上遇到了困难。
异步函数本身不难理解,就是用线程池里面的一个空闲线程去做一件事情。但是这个异步函数还可以拥有一个回调函数,这就让人产生不少疑惑的地方。
网上找到的关于回调函数的说明大概有这么几点:
1 它和异步函数使用同一个线程,并在异步函数执行完毕后被调用;
2 它从异步函数那里接收一个实现了IAsyncResult接口的对象作为参数,这个对象有AsyncState和IsCompleted属性。AsyncState属性用来获取一开始传递给异步函数的那个Object对象,相当于起到给回调函数传递任意类型参数的作用。IsCompleted属性表示异步函数是否完成,由于回调函数必然在异步函数执行完毕后调用,所以在回调函数中这个属性肯定为true,这个属性的作用是当不使用回调函数时,可以在主线程里利用它判断异步函数是否执行完毕(不使用回调函数时,这个IAsyncResult对象可以通过异步函数的返回值得到)。
比如像这样(iar是一个IAsyncResult对象):
iar = xx.BeginXXX();
while (! iar.IsCompleted)
{
//更新UI并响应用户操作
}

现在仍然不太理解的是和开始异步的BeginXXX相对应的EndXXX的作用。msdn上查到的解释是等待异步调用的完成。
如果把这个函数放到主线程调用,那么它会在异步调用完成前阻塞主线程。问题是把这个函数放到回调函数里到底是什么意思?
如果说NetworkStream的EndRead函数还能返回读取到的byte数的话,像TcpClient的EndConnect这样什么都不返回的函数是怎么回事?

这次的demo估计还要过一段时间,我打算等完成多人聊天功能之后再让大家测试(之前试着写的一个demo线程之间的关系被我弄得乱七八糟,一运行就CPU占用率百分之百直接挂掉)。
另外就是希望这周的会议能在建筑的问题上取得进展吧。

Commenti

Attendere...
Il commento immesso è troppo lungo. Immetti un commento più breve.
Immissione non effettuata. Riprova.
Impossibile aggiungere il commento al momento. Riprova più tardi.
Per aggiungere un commento è necessaria l'autorizzazione di un genitore. Chiedi autorizzazione
I tuoi genitori hanno disattivato i commenti.
Impossibile eliminare il commento al momento. Riprova più tardi.
Hai raggiunto il numero massimo di commenti pubblicabili giornalmente. Riprova tra 24 ore.
Impossibile lasciare commenti. La funzionalità è stata disattivata perché i sistemi hanno rilevato una possibile attività di spamming dal tuo account. Se ritieni che il tuo account è stato disattivato per errore, contatta il supporto tecnico di Windows Live.
Esegui il seguente controllo di protezione per completare la pubblicazione del commento.
I caratteri digitati nel controllo di protezione devono corrispondere ai caratteri dell'immagine o della riproduzione audio.

Per aggiungere un commento, accedi con il tuo Windows Live ID (se utilizzi Hotmail, Messenger o Xbox LIVE possiedi già un Windows Live ID). Accedi


Non hai ancora un Windows Live ID? Registrati

Riferimenti

L'URL di riferimento per questo intervento è:
http://argoran.spaces.live.com/blog/cns!368851DC9D62C39D!5315.trak
Blog che fanno riferimento a questo intervento
  • Nessuno