Dispatcher CheckAccess的目的是什么?

ari*_*iso 3 wpf multithreading asynchronous dispatcher

在完成事件的Async webservice上,有一个代码,例如:

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

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

Ree*_*sey 7

这是一个调试断言.删除它将不会影响生产代码.

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

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