正在用wpf做一个语音聊天的东西。需要引用这两个类库,添加了引用之后,程序运行没报错,但是出现假死。单步调试到此处
try { if(!CreateCaputerDevice()) { throw new Exception("找不到设备"); } }
其中
private bool CreateCaputerDevice() { System.Windows.Forms.MessageBox.Show("当前没有可用于音频捕捉的设备", "系统提示"); //首先要玫举可用的捕捉设备 CaptureDevicesCollection capturedev = new CaptureDevicesCollection(); Guid devguid; if (capturedev.Count > 0) { devguid = capturedev[0].DriverGuid; } else { //System.Windows.Forms.MessageBox.Show("当前没有可用于音频捕捉的设备", "系统提示"); return false; } //利用设备GUID来建立一个捕捉设备对象 capture = new Capture(devguid); return true; }
执行到if处CreateCaputerDevice()没有被调用(对话框没被输出,没有进入这个函数),但是程序就卡在这,没有异常,也没有报错,且无法继续单步执行,很奇怪。如果把CreateCaputerDevice()里的代码注释掉,只留下return true则正常。想求教大家,这到底是怎么回事?
System.Windows.Forms.MessageBox.Show("当前没有可用于音频捕捉的设备", "系统提示");
这句别注释,别的都注释掉看看能不能弹出。
试过了,不能弹出
试过了,能弹出。刚才多敲了一个字。如果函数里只剩一个System.Windows.Forms.MessageBox.Show("当前没有可用于音频捕捉的设备", "系统提示");return true;也是可以执行的,对话框可以弹出。
System.Windows.MessageBox.Show("当前没有可用于音频捕捉的设备", "系统提示");
wpf的MessageBox不在Froms命名空间下,那个是winfrom程序用的
去掉之后还是出问题,卡在这一句了
CaptureDevicesCollection capturedev = new CaptureDevicesCollection();
楼主这个问题是什么问题啊?我也遇到了~
没有解决啊