Dispatcher CheckAccess的目的是什么?

时间:2009-10-23 15:44:12

标签: wpf multithreading asynchronous dispatcher

在完成事件的异步Web服务上,有一个代码如:

Debug.Assert(Dispatcher.CheckAccess()); // don't do marshaling here- it's already runinng on UI thread!

如果我删除此代码,有人知道会发生什么吗? 或者,能够回答我的问题吗?

1 个答案:

答案 0 :(得分:7)

这是一个调试断言。删除它对生产代码没有影响。

它正在做的是使用Dispatcher.CheckAccess()来验证您在此时的exectution期间是否在UI线程上。如果从后台线程调用该方法,则断言将失败。

删除它可能会影响您将来调试它的能力。