C#:如何取消RasDial通话?

时间:2009-10-14 13:59:54

标签: c# compact-framework windows-ce

我们在Windows CE 6设备上使用C#和.NET Compact Framework 2.0。当我需要在服务器和设备之间传输数据时,我正在使用RasDial调用建立GPRS连接。

这一切都很好用。但是,有时当没有信号时,对RasDial的调用将永远消失,只能通过热启动设备来停止。我们的客户希望我在我们显示的状态窗口中添加“取消”按钮,以允许用户取消拨号过程。

问题是:怎么样? RasDial是一个同步调用,我没有看到取消请求的方法。一种解决方案是在单独的线程中执行调用,并在用户按下“取消”按钮时中止该线程,但这似乎不是一个非常好的解决方案。

有什么想法吗?

修改
目前我正在尝试向我已添加到项目中的C ++库添加功能,这将允许我使用RasHangup取消拨号(对RasDial进行异步调用)。

关于如何在没有单独的C ++ DLL或第三方库的情况下使用标准C#/ .NET Framework进行此操作的任何想法?

编辑2
刚刚在.NET Compact Framework 2.0中发现了MessageWindow类 - 我将尝试使用它的子类来接收状态消息。

编辑3
我已经研究了如何使用MessageWindow满足我的需求,现在我可以异步通知连接过程。好像我自己解决了:-D

1 个答案:

答案 0 :(得分:2)

您可以查看OpenNETCF RAS library over on CodePlex。它完成了所有这些。