Vb.net ocx库的只读属性存在非常奇怪的问题?

Vb.net ocx库的只读属性存在非常奇怪的问题?,vb.net,dll,delay,ocx,printers,Vb.net,Dll,Delay,Ocx,Printers,首先,感谢您花时间阅读我的帖子,并帮助我克服这个问题 我搜索了很多帖子,读了很多文章,但没有找到一个好的答案,我的代码不断失败,我的情况是:我有一个OCX库(.OCX文件),我正在将引用添加到我的VB.NET 2008应用程序中,正如MSDN建议的那样,该库应该向打印机发送命令,完美我可以打开端口并完美地发送命令,但是,在我发送下一个命令之前,我必须等待打印机更改其状态(从忙碌到空闲),但我无法获得正确等待的代码,我想确定问题是否出在库或代码上,因此我在该变量中添加了一个表,以查看它是否真的在更

首先,感谢您花时间阅读我的帖子,并帮助我克服这个问题

我搜索了很多帖子,读了很多文章,但没有找到一个好的答案,我的代码不断失败,我的情况是:我有一个OCX库(.OCX文件),我正在将引用添加到我的VB.NET 2008应用程序中,正如MSDN建议的那样,该库应该向打印机发送命令,完美我可以打开端口并完美地发送命令,但是,在我发送下一个命令之前,我必须等待打印机更改其状态(从忙碌到空闲),但我无法获得正确等待的代码,我想确定问题是否出在库或代码上,因此我在该变量中添加了一个表,以查看它是否真的在更改并且正在更改,所以我不知道这里发生了什么,让我告诉你我的代码:

    AxEpsonFPHostControl1.CommPort = EpsonFPHostControlX.TxCommPort.Com1 'Set my com port
    AxEpsonFPHostControl1.BaudRate = EpsonFPHostControlX.TxBaudRate.br9600 ' set my baud rate
    AxEpsonFPHostControl1.ProtocolType = EpsonFPHostControlX.TxProtocolType.protocol_Extended
    AxEpsonFPHostControl1.OpenPort() ' I open my port
    OpenTicket(params) ' Here I send a command, you can ignore the parameters
FPDelayNew()  ' Here I TRY to create a delay that waits until the printer change from busy to Idle

SendItem(params) ' Here I send a command, you can ignore the parameters
FPDelayNew()     ' Here I TRY to create a delay that waits until the printer change from busy to Idle

    AxEpsonFPHostControl1.ClosePort()
我试过很多东西,其中一个我试过的是: 只是想让你知道 AxEpsonFPHostControl1.CtlState

是一个

EpsonFPHostControlX.TxFiscalState.EFP\u S\u Busy

仅当EFP_S_Busy为2时为枚举

这就是我尝试延迟的方式:

Public Sub FPDelayNew()
    While AxEpsonFPHostControl1.CtlState = EpsonFPHostControlX.TxFiscalState.EFP_S_Busy
        System.Threading.Thread.Sleep(0)
    End While
End Sub
它根本不起作用,有时程序会快速执行这个方法,或者如果我使用断点,当我一步一步地运行这个方法时,应用程序就会挂起,所以我不知道会发生什么

我已经试过用手表检查AxEpsonFPHostControl1.CtlState是否没有改变它的状态,它正在改变

试过一次活动,同样,试过一次直到…循环,同样,我希望我能找到能帮我的人,向我致意


我终于找到了一个解决方案,如果你需要这个库的帮助,可以联系我luisarmando。molina@yahoo.com

我没有正确地检查状态,您需要反复发送命令,直到它返回成功。文档中是这么说的,而且enum TxFiscalState在64位计算机上根本不工作,所以停止尝试,至少在我使用的库中没有。只需发布答案,在这里留下你的电子邮件地址是不合适的。
Public Sub FPDelayNew()
    While AxEpsonFPHostControl1.CtlState = EpsonFPHostControlX.TxFiscalState.EFP_S_Busy
        System.Threading.Thread.Sleep(0)
    End While
End Sub