C# uEye摄像头可以';开放式装置

C# uEye摄像头可以';开放式装置,c#,camera,device,C#,Camera,Device,我正在为应用程序使用API uEye摄像头,我无法初始化我的摄像头 第一次运行应用程序时(Visual Studio处于调试状态),应用程序运行良好,相机已打开。我还在发展,然后我跑了很多次,退出了很多次。但是经过一些测试(有时是1次,有时是10次),相机无法启动。我不得不退出VisualStudio并重新打开以使相机运行 我的初始化代码: uEye.Camera _cam; _cam = new uEye.Camera(); if (_cam != null) { _cam.Exit(

我正在为应用程序使用API uEye摄像头,我无法初始化我的摄像头

第一次运行应用程序时(Visual Studio处于调试状态),应用程序运行良好,相机已打开。我还在发展,然后我跑了很多次,退出了很多次。但是经过一些测试(有时是1次,有时是10次),相机无法启动。我不得不退出VisualStudio并重新打开以使相机运行

我的初始化代码:

uEye.Camera _cam;
_cam = new uEye.Camera();
if (_cam != null)
{
    _cam.Exit();
}

uEye.Defines.Status statusRet = 0;
_cam.EventDeviceRemove += EventDeviceRemove;

statusRet = _cam.Init(DeviceNumber | (int)uEye.Defines.DeviceEnumeration.UseDeviceID, 0);
if (statusRet != uEye.Defines.Status.Success)
    throw new Exception("Camera initializing failed. init return " + (int)statusRet);
当相机不运行时,我有
statusRet==uEye.Defines.Status.CANT\u OPEN\u设备

我该怎么做才能每次正确启动摄像头

编辑:

有一个我的
Stop
方法,在应用程序关闭时调用:

public void Stop()
{
    _cam.EventFrame -= NewFrameArrived;
    _cam.Acquisition.Stop(uEye.Defines.DeviceParameter.Wait);
}

public void Dispose()
{
    if (_cam != null)
    {
        _cam.Exit();
        _cam = null;
    }
}

如果相机可能只工作一次而其他人不工作,您确定您正在释放相机的所有用途吗?
\u-cam
\u-cam=new…
之后不能
null
,这在C中是不可能的。另外,检查是否调用
Exit()
方法并取消订阅所有事件。“我们的uEye相机没有问题。”BugFinder edit补充道,“当主窗口关闭时,我的代码被调用。”。但我在调试中,有时我没有“正确”退出,我按下了退出调试按钮。有没有办法在init检查是否所有使用都已发布@dymanoid Exit和unsubscribe被正确调用,我删除了无用的
如果(\u cam!=null)
@A.pissica关闭程序时,您必须释放/统一摄像机。这可能是个问题。或在初始化之前检查摄像头的状态。如果脱机,则初始化,否则不初始化。我已尝试过此操作,但无法确定是否已在关闭时正确释放相机。我无法在初始化中获取相机的状态,我只有一个状态
uEye.Defines.status.CANT\u OPEN\u DEVICE
。我想知道是否有办法了解更多细节?