【问题标题】:Open File Dialog not working in c#!打开文件对话框在 c# 中不起作用!
【发布时间】:2015-05-06 11:28:20
【问题描述】:
private void button3_Click(object sender, EventArgs e)
    {
        OpenFileDialog ofd = new OpenFileDialog();
        ofd.Filter = "Music|*.mp3";
        if(ofd.ShowDialog()==DialogResult.OK)
        {
            SoundPlayer sp = new SoundPlayer(ofd.FileName);
            sp.Play();
        }
    }

我尝试了给定的代码,但它没有显示出来。而不是该程序冻结。 当然,main方法中已经有[STATHREAD]了。请帮忙!

【问题讨论】:

  • 请使用调试器,设置断点。您的程序究竟在哪里冻结?什么是变量值(预期值与实际值)?出了什么问题?

标签: c# winforms openfiledialog


【解决方案1】:

我猜测 SoundPlayer 的 Play() 方法是一个阻塞调用,因此当您在 UI 线程上运行它时,它会阻止 UI 在播放完成之前执行任何操作。

尝试将播放器作为单独的线程启动,看看是否会导致您的程序不冻结。

【讨论】:

  • SoundPlayer.Play() 是异步调用。该类有一个同步的PlaySync() 方法。所以你的理论是不正确的。这里真正的问题是 OP 没有费心提供一个可以回答的有用问题。最好不要尝试回答此类问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多