C# 表单应用程序上的vlc activeX控件太多

C# 表单应用程序上的vlc activeX控件太多,c#,winforms,vlc,C#,Winforms,Vlc,我有一个视频监控应用程序,在C#中使用VS2012,使用vlc activex插件。我可以嵌入并观看大约30个视频,没有任何问题。一旦我到了35岁左右,我就会随机崩溃。在40岁时,事故立即发生。崩溃通常不会给我任何信息,但有时我会收到nvidia视频驱动程序崩溃消息。有时会弹出的另一个错误是GDI“参数无效”错误。为了排除代码中的任何问题,我去掉了除vlc之外的所有控制项,问题仍然存在 如果我在应用程序上运行两个实例,每个实例都有20个视频窗口,那么我就没有问题 这是因为单线程而达到的极限吗?有

我有一个视频监控应用程序,在C#中使用VS2012,使用vlc activex插件。我可以嵌入并观看大约30个视频,没有任何问题。一旦我到了35岁左右,我就会随机崩溃。在40岁时,事故立即发生。崩溃通常不会给我任何信息,但有时我会收到nvidia视频驱动程序崩溃消息。有时会弹出的另一个错误是GDI“参数无效”错误。为了排除代码中的任何问题,我去掉了除vlc之外的所有控制项,问题仍然存在

如果我在应用程序上运行两个实例,每个实例都有20个视频窗口,那么我就没有问题


这是因为单线程而达到的极限吗?有什么解决办法吗?

您需要更多的服务器和内存空间才能在一个屏幕上获得25个以上的视频,但您的本地机器和i7处理器无法帮助您解决此问题。我知道VLC是最好的视频开发工具包,这是唯一一款能够在低内存和CPU利用率的情况下在单屏幕上提供比其他设备更多视频的工具包


最好的愿望是获得解决此问题的ASP,如果您解决了此问题,请发表文章

,但为什么我可以在同一台机器上运行两个应用程序实例来播放40个视频,而不能在一个实例中播放40个视频?我有一台8核的机器,它的CPU利用率只有30%左右,播放30个视频。使用VMMap检查进程的内存使用情况。。。听起来您的内存不足,并且遇到了OutOfMemory异常…@GerbilWockey如果VLC不是64位应用程序,那么您可能会在单个进程上遇到内存限制,而使用两个进程是不会遇到的。此外,perfmon还可用于检查应用程序的内存使用情况,您应该同时查看本机和托管内存资源。只需更新。。。我试着将每一行视频放在自己的表格上,并将每个表格设置为一个新的线程。这也没有解决问题。vlc activex插件只有32位,所以我无法尝试构建64位。当Windows将句柄配额应用于进程时,这种代码往往会严重崩溃。程序员倾向于跳过所需的错误处理,很难处理低级winapi函数失败。当代码开始向函数传递垃圾值、触发空指针崩溃和“参数无效”错误时,一切都会崩溃。有人应该提交补丁,但没有人有时间,因为它实际上没有解决核心问题:使用太多资源。