WinCE5设备从待机模式返回后PInvoke错误?

时间:2015-11-17 06:48:01

标签: c# vb.net dll sql-server-ce compact-framework

我正在使用带打印机的Windows CE 5设备上进行开发。我有一个正在运行的VB.Net(紧凑)程序,没有问题与设备的打印机库交互。但是使用C#编写的程序,在设备处于待机模式一段时间后,我得到了PInvoke错误。我设法通过从设备的Windows文件夹中复制.dll文件并将其粘贴到C#程序的目录中来解决该问题。

现在,我遇到了SQL Server CE DLL的问题!同样的事情 - 它发生在C#上,而不是VB.Net程序,它发生在设备处于待机模式很长一段时间之后。它也不会发生在SQL Server CE的所有组件上 - 就在我进行合并复制时。为了让它再次工作,我关闭并重新运行该程序。这对我来说很好,但对用户来说是不可接受的。

可能导致这种情况的原因是什么?这只是与C#的区别吗?我不想将所有SQL Server CE库粘贴到我的程序目录中。

(两个程序都将SQL Server CE库添加到References,代码中都有using/Imports System.Data.SqlServerCe

1 个答案:

答案 0 :(得分:1)

您应该让设备暂停/恢复。请注意,暂停通知将在下一次恢复后发送。

大多数程序员忘记了移动设备未处于始终连接和供电状态。例如,如果设备挂起,并且应用程序已在外部存储上打开了文件。在挂起/恢复周期期间,存储可能会断电/上电。然后,应用程序需要关闭该文件并重新打开它。与网络和其他无线或有线连接相同。这些可能会在暂停期间停止运行,需要在恢复时重新初始化。