我在我的项目中使用FluorineFx 1.0.0.17NetConnection
并用于连接到 RTMP 主机(Flash 媒体服务器)。我正在为 PRTG 创建一个 RTMP 监控探针。
在文件的第 173 行主应用程序进程结束时总是出现错误WorkItemsQueue.cs
(此处显示的第二个代码行)
// Prepare array of wait handle for the WaitHandle.WaitAny()
WaitHandle [] waitHandles = new WaitHandle [] { WaitEntry.WaitHandle, cancelEvent };
// Wait for available resource, cancel event, or timeout.
int index = WaitHandle.WaitAny(waitHandles, millisecondsTimeout, true);
这是调试器向我展示的:
调用堆栈:
[In a sleep, wait, or join]
[External Code]
FluorineFx.dll!FluorineFx.Threading.WorkItemsQueue.DequeueWorkItem(int millisecondsTimeout, System.Threading.WaitHandle cancelEvent) Line 173 + 0xd bytes C#
FluorineFx.dll!FluorineFx.Threading.ThreadPoolEx.Dequeue() Line 329 + 0x2c bytes C#
FluorineFx.dll!FluorineFx.Threading.ThreadPoolEx.ProcessQueuedItems() Line 378 + 0x8 bytes C#
[External Code]
kernel32.dll!749c3677()
[Frames below may be incorrect and/or missing, no symbols loaded for kernel32.dll]
ntdll.dll!770e9f42()
ntdll.dll!770e9f15()
在进程结束时,我的意思是整个程序按应有的方式工作,但是在 Main 方法结束时,调试器会抛出此非托管代码错误(仅在启用非托管代码调试时显示)。
我不知道如何调试它,也不知道如何避免它。任何帮助,将不胜感激。
更新 1:
主线程停在:
Environment.Exit(0);