Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# GPS中间驱动程序未返回有效结果_C#_Windows Mobile_Gps - Fatal编程技术网

C# GPS中间驱动程序未返回有效结果

C# GPS中间驱动程序未返回有效结果,c#,windows-mobile,gps,C#,Windows Mobile,Gps,我正在尝试使用GPS中间驱动程序从Windows Mobile 6.5设备获取Lat和Long数据,代码如下: Gps gps = new Gps(); gps.Open(); var pos = gps.GetPosition(); while (!pos.LatitudeValid && !pos.LongitudeValid) pos = gps.GetPosition(); gps.Close(); 问题是我从不打破循环!我尝试在完全相同的地点使用Bing

我正在尝试使用GPS中间驱动程序从Windows Mobile 6.5设备获取Lat和Long数据,代码如下:

Gps gps = new Gps();
gps.Open();

var pos = gps.GetPosition();

while (!pos.LatitudeValid && !pos.LongitudeValid)
    pos = gps.GetPosition();

gps.Close();
问题是我从不打破循环!我尝试在完全相同的地点使用Bing地图,使用GPSID可以立即得到结果

所有我需要的是相对(如在100米以内)的横向和纵向数据。我从6.5.3 DTK中提取了GPSID dll,因此我相信它是最新的。上面列出了访问GPS的所有代码,因此如果我遗漏了什么,请告诉我


感谢

这对于COM组件来说是非常典型的,它们无法更新其内部状态,直到您启动消息循环。如果没有发生,你就陷入了一个循环。改用计时器。

谢谢,我想是那样的。你能举一个使用计时器的小例子吗?你不知道如何使用计时器吗?请远离键盘。lol,不,我不知道如何使用计时器:)我所说的“小示例”是指添加一个轮询
gps.GetPosition()的计时器
或通过直接订阅GPS对象的“OnLocationChange”事件来使用GPS类的内部计时器。另外,我想知道您是否有任何特定的insite进入适当的滴答时间间隔(我通常是100毫秒,但我也不知道我在说什么),我实际上最终做了后者(事件订阅),但在一个单独的线程上运行它,然后调用Join,这非常适合,并且不需要重新执行任何逻辑。