2016-10-13 54 views
1

我在VS2015中调试时刚刚目睹一些奇怪的行为。当我调试时,出于某种原因,调试器跳回到某个点,最终导致抛出异常。奇怪的是,当我调试,我没有得到这个异常,如果我只是打Ctrl键,我只得到这个例外 + F5调试器在VS2015中跳回

我FinalImage:private System.Windows.Controls.Image FinalImage{ get; set; }

为什么会出现这种情况?它由于某种原因跳回FinalImage.Source,我不明白为什么。看到这个GIF:

enter image description here

异常说,我不能一个位图转换为URI ...感谢您的帮助!

+0

这可能是由于多线程,您是否检查了当您“跳回”当前线程是否更改? – 3615

回答

4

有此行为两个可能的原因:

  • FinalImage.Source的属性设置调用(可能是间接的)你ImagePath二传手一次。如果是这种情况,请检查调用堆栈窗口。
  • 还有第二个线程执行相同的代码,并且当您设置FinalImage.Source时,它会触发您的断点。检查线程窗口。
+0

https://i.gyazo.com/7ff5f8c5d6b50deecf0ae7852fb571fe.gif看这里。我能做些什么呢? – Markinson

+0

@Derp看看* call stack *窗口,你清楚地看到了第一种情况。我不知道你能做什么,因为我不知道你的代码是做什么的。 –

+0

啊我已经认为我明白了。我正在使用一个MVVM模式的twoway绑定来选择一个具有'FileDialog'的图像并更新当前图片。我猜想,当我更改FileImage的源代码时,绑定模式会被触发或在不同的线程中执行某些操作。我想这可能是唯一的事情。听起来像是对的?我只是想通了,虽然整个FileImage.Source的东西是没有必要的,因为双向绑定照顾。 – Markinson