나는 통계 데이터를 저장하기 위해 sqlite db를 사용하는 as3 app을 가지고있다. as3은 싱글 스레드이므로,이 db에 저장할 때, 내가 연주하고있는 스테이지 비디오가 급격히 움직이는 것으로 알려져 있습니다! 나는 의사 스레딩 예제로 보았다sqlite DB에 최적화 저장 하시겠습니까?
for (var i:int=0; i < metricsObject.metricsComponentData.length; i++){
switch (metricsObject.metricsComponentData[i].mouseType) {
case MetricsCollator.MOUSE_OVER:
this._query_txt = "INSERT INTO " + this._tablePath[0] + " VALUES (null, " + this._sessionID +
", " + metricsObject.metricsComponentData[i].timeStamp +
", '" + metricsObject.metricsComponentData[i].component + "'" + ")";
break;
case MetricsCollator.MOUSE_OUT:
this._query_txt = "INSERT INTO " + this._tablePath[1] + " VALUES (null, " + this._sessionID +
", " + metricsObject.metricsComponentData[i].timeStamp +
", '" + metricsObject.metricsComponentData[i].component + "'" + ")";
break;
} // end switch
executeQuery(this._query_txt);
} // end loop
하지만 그들은 모두가 스프라이트 또는 단계 인스턴스를 필요로하는 클래스 I가 실행하고, : 나는 루프에 저장할 수 있도록 일괄 DB 데이터를 저장하는 것이이 과정의 속도를 높일 수 있다고 들었습니다 이 코드는 디스플레이 클래스가 아니며,이 클래스에 스테이지의 인스턴스를 전달하고 싶지는 않습니다. 더러운 것처럼 보입니다! ;-)
누구든지 아이디어가 있습니까?
을 실행 그들이 끝날 때까지 기다려야 중지됩니다! – grapefrukt
그래서 명확히 할 수 있습니까? handleTick()에서 startWorking()을 호출하여 시간 단위로 DB에 저장해야합니다. 그런 다음 타이머를 마쳤습니까? 따라서 DB 저장을 루프에서 제거해야합니까? 건방진 응답을위한 –
번호. 외부에서 startWorking을 호출하면 handleTick이 타이머를 중지 할 때까지 호출됩니다. 이렇게하면 "스레딩"이 외부에 투명 해 지므로 평상시와 같이 저장 전화를 걸면 시간이 지남에 따라 전화가 걸립니다. – grapefrukt