package ALBasicServer.ALServerAsynTask; import ALBasicServer.ALServerSynTask.ALSynTaskManager; import ALBasicServer.ALTask._IALAsynCallBackTask; import ALBasicServer.ALTask._IALAsynCallTask; import ALBasicServer.ALTask._IALAsynRunnableTask; /********************* * 异步任务处理信息对象 * * @author alzq.z * @email zhuangfan@vip.163.com * @time Feb 19, 2013 4:01:56 PM */ public class ALAsynTaskInfo<T> { private _IALAsynCallTask<T> _m_tCallObj; private _IALAsynCallBackTask<T> _m_tCallBackObj; private _IALAsynRunnableTask _m_tRunObj; public ALAsynTaskInfo(_IALAsynCallTask<T> _callObj, _IALAsynCallBackTask<T> _callBackObj) { _m_tCallObj = _callObj; _m_tCallBackObj = _callBackObj; _m_tRunObj = null; } public ALAsynTaskInfo(_IALAsynRunnableTask _runObj) { _m_tCallObj = null; _m_tCallBackObj = null; _m_tRunObj = _runObj; } public void run() { if(null == _m_tRunObj) { //处理异步 T object = null; try { if(null != _m_tCallObj) { object = _m_tCallObj.dealAsynTask(); } } catch (Exception e) { e.printStackTrace(); } //添加任务进行回调的处理 if(null != _m_tCallBackObj) { ALSynTaskManager.getInstance().regTask(new SynAsynCallBackTask<T>(object, _m_tCallBackObj)); } } else { try { _m_tRunObj.run(); } catch(Exception e) { e.printStackTrace(); } } } }