诡异的情况,大小牛帮我解答下
上代码
GEWebClientLib.WebOcxClass ocx = new WebOcxClass();
ocx.Initialize(1, 1, 1, 255);
ocx.LoginUAS("IP", 5555, "用户名", "1234", 0, 0, 0, 0);
System.Windows.Forms.MessageBox.Show("1");
ocx.StartMonitor("201716-201716000100000014-0001-0002", -1, 1, 0, 0, 0);
System.Windows.Forms.MessageBox.Show("2");
ocx.StartLocalRecord("201716-201716000100000014-0001-0002", ent_name +s + ".asf", 5);
诡异情况如下:直接运行这段代码,没反应跟似乎这些代码没执行一样。debug下断点必须加在标红的地方,后面的代码才执行。不debug的话,在代码中间加System.Windows.Forms.MessageBox.Show("1");,后面的代码才会执行。
在线等,求高人帮忙解决这个问题
------解决方案--------------------直接在LoginUAS这个方法里面设置断点进不去吗
------解决方案--------------------肯定是执行了了的, 楼主再看看代码吧
------解决方案--------------------最好你反编译看一下GEWebClientLib中的代码,我猜可能是LoginUAS方法还没有执行完毕时,StartMonitor和StartLocalRecord就开始调用,导致出现了问题。
也就是说,你不清楚GEWebClientLib是异步的还是同步的。
------解决方案--------------------这种问题就得慢慢调试,去掉messagebox加个System.Threading.Thread.Sleep看看有没有反应
------解决方案--------------------ocx.Initialize(1, 1, 1, 255);
ocx.LoginUAS("IP", 5555, "用户名", "1234", 0, 0, 0, 0);
这两个方法你确定执行没?有没有返回值什么的?
------解决方案--------------------
那肯定LoginUSA方法是异步的。
------解决方案--------------------
我不是大牛,你拿 Reflector 反编译看看吧。 或者你问一下DLL创建者
------解决方案--------------------那就是你接口有问题
如果第三方,你可以问下第三方公司,也应该有开发文档吧
如果在网上找的,那你悲催了,及时反编译,有些地方也是看不了的,只能看个大概