|
Тема |
поредица от HTTP requests |
|
Автор | longy (Нерегистриран) | |
Публикувано | 19.06.07 08:34 |
|
|
Дайте съвет моля.
При дадени събития от UI-то (clicks, timers etc.) искам да изпращам http request към сървър и после да обработвам responce и да update-вам UI-то по подходящ начин.
Обаче понеже не знам колко време ще отнеме обработката на даден request, пък и доколкото съм наясно сървъра обработва всеки request в отделен процес (или поне отделен thread) не е гарантирано, че ще получа responce-ите в същия ред, в който съм изпратил request-ите.
Преди да се сблъскам с този проблем бях направил така:
При събитие от UI-то стартирах отделен thread, който изпращаше request и получаваше responce и после на OnTerminate() предаваше получените данни към UI-то. Така се спасявах от замръзването на UI-то в случай на забавяне в комуникацията.
Обаче ми се случи точно това, което описах като проблем по-горе:
получих response от по-късно изпратен request преди да съм получил от по-рано изпратения и това страшно ми обърка работата.
мисля, че стандартно решение на такива проблеми е ползването на опашка, в която се добавя request при дадено събитие от UI-то и един thread, който чете от опашката поредния request, изпраща го и получава responce.
Това, за което имам нужда от съвет е следното:
- да кажем че communication thread-a е получил вече responce от сървъра и искам да прехвърля данните към UI-то.
как да си гарантирам, че това "прехвърляне" на данните към UI-то ще завърши (правя доста анализи на получените, данни, още повече че става въпрос за HTTP комуникация, така че има парсване и може да отнеме време)
преди communication thread-a да изпълни следващия request от опашката и да "замаже" получения responce с нови данни ?
|
| |
|
|
|