C# Show使DirectShow运行

C# Show使DirectShow运行,c#,wpf,C#,Wpf,有没有人知道如果你打电话的话会发生什么情况 mediaControl.Run(); 在调用此函数之前,它不会真正开始渲染视频 MessageBox.Show(""); 我不明白为什么媒体没有运行,即使getstate返回它正在运行,直到我返回HRESULT,它说确定它正在运行。。。但仅在显示messagebox时在窗口上显示视频 奇怪的是,如果您关闭messagebox,渲染暂停。。。但是如果你在5秒钟后再打电话给它,它会继续工作 此外。。。如果您关闭messagebox并在它之后有一个连续

有没有人知道如果你打电话的话会发生什么情况

mediaControl.Run();
在调用此函数之前,它不会真正开始渲染视频

MessageBox.Show("");
我不明白为什么媒体没有运行,即使getstate返回它正在运行,直到我返回HRESULT,它说确定它正在运行。。。但仅在显示messagebox时在窗口上显示视频

奇怪的是,如果您关闭messagebox,渲染暂停。。。但是如果你在5秒钟后再打电话给它,它会继续工作

此外。。。如果您关闭messagebox并在它之后有一个连续循环,使线程无限期休眠,它将继续渲染

我一整天都在为这个问题绞尽脑汁,想弄明白为什么messagebox是关键。。。但最终,我无法显示messagebox

任何随机的想法也会有帮助。。。谢谢


干杯。

MessageBox.Show()的主要作用是运行消息循环。您可以将其替换为模拟的
DoEvents()
(请参阅)


但是,您的代码中可能存在一个严重的问题

了解您正在使用的代码会有所帮助。如果它很短,发布所有内容,或者如果项目真的很大,试着挑选需要的部分。链接没有帮助。。。但是提到消息循环给了我需要的线索。我正在访问User32.dll以执行PostThreadMessage,每当在该断点处停止时,视频就会呈现。。。所以现在我应该走上正轨了。。。不需要消息框。非常感谢。不知道是谁投票否决了我,这是一个诚实的问题,但哦,好吧。。。你给我指明了我要去的方向。干杯