Mat*_*asS 3 silverlight expression-blend windows-phone-7 windows-phone-7.1
我正在为Windows Phone 7+构建一个可以进行增强现实图像处理的自定义控件.控件在实践中运行得非常好(当我运行应用程序时),但因为我在单独的线程上运行图像处理,当我尝试在Blend或Visual Studio设计器中打开页面时,它会中断.
这是我正在尝试运行的线程的示例(基本上取自http://msdn.microsoft.com/en-us/library/hh202982(v=vs.92).aspx):
public override void OnApplyTemplate()
{
// assigning template stuff, initializing my camera
_myManualResetEvent = new ManualResetEvent(true);
_myCameraProcessingThread = new System.Threading.Thread(ProcessingMethod);
_myCameraProcessingThread.Start();
}
void ProcessingMethod()
{
int[] myBuffer = new int[640 * 480];
while(_someCondition)
{
_myManualResetEvent.WaitOne();
_myCamera.GetPreviewBufferArgb32(myBuffer);
// do my processing stuff
_myManualResetEvent.Set();
}
}
Run Code Online (Sandbox Code Playgroud)
这打破了Blend的爱好.很想知道为什么.
看起来你在这个OnApplyTemplate方法中做了很多运行时的东西.
当Blend或Visual Studio实例化控件的设计视图时,将调用此方法.
您应该使用以下方法检查您是否处于设计模式DesignMode:
if (!DesignMode)
{
_myManualResetEvent = new ManualResetEvent(true);
_myCameraProcessingThread = new System.Threading.Thread(ProcessingMethod);
_myCameraProcessingThread.Start();
}
Run Code Online (Sandbox Code Playgroud)
或者将此代码移动到仅在应用程序实际运行时调用的方法/事件处理程序中.
| 归档时间: |
|
| 查看次数: |
699 次 |
| 最近记录: |