Dar*_*ale 2 xna visual-studio-2010 kinect
我正在使用Visual Studio 2010使用Kinect SDK 1.6创建XNA应用程序.我有一个问题,即在调试应用程序后,构建通常会失败(并不总是).有一个锁定的过程KinectDrobePrototype1.exe.
Error 12 Unable to copy file "obj\x86\Debug\KinectDrobePrototype1.exe" to
"bin\x86\Debug\KinectDrobePrototype1.exe". The process cannot access the file
'bin\x86\Debug\KinectDrobePrototype1.exe' because it is being used by another
process.
Error 11 Could not copy "obj\x86\Debug\KinectDrobePrototype1.exe" to
"bin\x86\Debug\KinectDrobePrototype1.exe". Exceeded retry count of 10. Failed.
Run Code Online (Sandbox Code Playgroud)
我使用了Process Explorer,它告诉我这是一个System过程.
Process | PID | Type | Name
System 4 File C:\Users\ ... \KinectDrobePrototype1\KinectDrobePrototype1\KinectDrobePrototype1\bin\x86\Debug\KinectDrobePrototype1.exe
Run Code Online (Sandbox Code Playgroud)
我已经看到了类似的帖子喜欢这样,但它并没有帮助.我觉得我的应用程序中必定还有一些东西可以处理.我确信当应用程序终止时,我的KinectManager类中会执行以下代码.
public void CleanUp()
{
if (ActiveKinectDevice != null)
UnintialiseDevice(ActiveKinectDevice);
}
private void UnintialiseDevice(KinectSensor device)
{
device.Stop();
device.ColorStream.Disable();
_ColourPixelData = null;
device.DepthStream.Disable();
_DepthPixelData = null;
device.SkeletonStream.Disable();
_SkeletonData = null;
}
Run Code Online (Sandbox Code Playgroud)
我对XNA很新,所以有可能我还没有做过.在UnloadContent我有以下几点:
protected override void UnloadContent()
{
_KinectManager.CleanUp();
_DrawingManager.CleanUp();
}
Run Code Online (Sandbox Code Playgroud)
然后在我的DrawingManager班上我处理了我使用过的几个纹理,我SpriteBatch和GraphicsDevice:
public void CleanUp()
{
HandIcon.Dispose();
JointIcon.Dispose();
_ColourImage.Dispose();
_DepthImage.Dispose();
_SpriteBatch.Dispose();
_GraphicsDevice.Dispose();
}
Run Code Online (Sandbox Code Playgroud)
有没有人有任何建议?或者我有一个明显的错误?
编辑1:我忘了提到我正在使用Kinect的轮询方法,这就是为什么我没有注册任何事件.
编辑2:为了澄清,系统进程最终会释放文件 - 它不会保持锁定状态.我认为这通常需要一到两分钟.
更新1:我确实安装了防病毒软件.我已经禁用了它,但它还没有解决问题.
更新2:我可以确认这是我的台式机特有的问题.我还没有在笔记本电脑上重现这个问题.
我在一个名为" 系统过程"异常的论坛上找到了一个讨论.
这取自Jblom1986的帖子.他的解决方案解决了我的问 要使用msconfig.exe进行更改,请转到服务选项卡.
"当名为'应用体验'的Windows服务(当崩溃的事件在微软数据库中找到解决方案的服务)被关闭时,另一个名为'搜索索引器'的服务(一种服务,负责快速查找驱动器上的文件)索引它们)开始出现故障.因此,Windows锁定你移动,复制或使用了几分钟的任何内容,以便在释放之前对该文件进行"索引",之后你可以删除同一个文件.它用进程ID号锁定它4(PID:4)".
编辑:这是在Windows 7计算机上.我不确定其他版本的Windows是否有此错误.