关于连接接入点的问题

ecchi 2011-01-31 03:17:13
目前写了一个需要用到网络连接的程序,目前是这么实现接入点连接的
......

TCommDbConnPref connectPref;

connectPref.SetDialogPreference(ECommDbDialogPrefPrompt);
connectPref.SetBearerSet(ECommDbBearerWLAN | ECommDbBearerGPRS);
connectPref.SetDirection(ECommDbConnectionDirectionUnknown);

TRequestStatus iStatus;
iConnection.Start(connectPref, iStatus);
User::WaitForRequest(iStatus);

......

现在的问题是User::WaitForRequest这里会等待比较长的时间,而由于是在主线程里面做的,所以也无法在等待过程中刷新界面了(就是想在界面上做一些"连接中"的提示和动态效果).

假如我不调用User::WaitForRequest来保证连接过程已经结束, 我应该怎么获得"连接过程结束"这一事件并且通过类似回调函数的方法做后续处理呢?
...全文
250 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
漁_夫 2011-02-22
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 jmulxg 的回复:]

使用异步方式啊
用AO
[/Quote]

Right.
pointerfree 2011-02-17
  • 打赏
  • 举报
回复
iConnection.Start(connectPref, iStatus); 使用这个是对的

同时网络有你一个观察者 用来监听网络的状态的 在RConnect 这个类中有介绍的
netlib 2011-02-12
  • 打赏
  • 举报
回复
AO的用法,查一下CActive
netlib 2011-02-12
  • 打赏
  • 举报
回复
那就用你的那个,
TRequestStatus iStatus;
iConnection.Start(connectPref, iStatus);
//User::WaitForRequest(iStatus);//注意这儿不要等待,使用AO异步处理
jmulxg 2011-02-11
  • 打赏
  • 举报
回复
使用异步方式啊
用AO
ecchi 2011-01-31
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 netlib 的回复:]
start可以只输入一个参数,如下例子
TCommDbConnPref prefs;
prefs.SetDialogPreference(ECommDbDialogPrefPrompt);
prefs.SetDirection(ECommDbConnectionDirectionOutgoing);
prefs.SetBearerSet(ECommDbBearerGPRS|ECommDbB……
[/Quote]
那也是同步的方式吧, 我现在是需要在等待连接的过程中在界面上做相应提示, 然后连接完成后有回调函数的方法
netlib 2011-01-31
  • 打赏
  • 举报
回复
start可以只输入一个参数,如下例子
TCommDbConnPref prefs;
prefs.SetDialogPreference(ECommDbDialogPrefPrompt);
prefs.SetDirection(ECommDbConnectionDirectionOutgoing);
prefs.SetBearerSet(ECommDbBearerGPRS|ECommDbBearerWLAN|ECommDbBearerVirtual);
err=iConnection.Start(prefs);
if(err==KErrNone)
{
iConnection.GetIntSetting(KIapIdSettingName,iIap.iId);
iConnection.GetDesSetting(KIapNameSettingName,iIap.iName);


TBuf<20> Iap;
Iap.AppendNum((TInt)(iIap.iId));


//写入接入点信息
iCameraSetting.iIapIndex = iIap.iId;
iCameraSetting.iIapName = iIap.iName;
iSocketServConnected = ETrue;
CheckPngAndDownload();
return KErrNone;
}
else
return err;

3,119

社区成员

发帖
与我相关
我的任务
社区描述
塞班系统(Symbian系统)是塞班公司为手机而设计的操作系统,它的前身是英国宝意昂公司的 EP ( Electronic Piece of cheese)操作系统。
社区管理员
  • Symbian社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧