/// <summary> /// Thread responsible for evaluating expressions asynchronously. /// </summary> public void evaluatingAsync() { VariableInfo vi = VariableInfo.get(exp, m_eventDispatcher, m_frame); AD7Property ppResult = new AD7Property(vi); m_frame.m_engine.Callback.Send(new AD7ExpressionEvaluationCompleteEvent(this, ppResult), AD7ExpressionEvaluationCompleteEvent.IID, m_frame.m_engine, m_frame.m_thread); }
/// <summary> /// This method evaluates the expression synchronously. (http://msdn.microsoft.com/en-ca/library/bb146982.aspx) /// </summary> /// <param name="dwFlags"> A combination of flags from the EVALFLAGS enumeration that control expression evaluation. </param> /// <param name="dwTimeout"> Maximum time, in milliseconds, to wait before returning from this method. Use INFINITE to wait /// indefinitely. </param> /// <param name="pExprCallback"> This parameter is always a null value. </param> /// <param name="ppResult"> Returns the IDebugProperty2 object that contains the result of the expression evaluation. </param> /// <returns> VSConstants.S_OK. </returns> int IDebugExpression2.EvaluateSync(enum_EVALFLAGS dwFlags, uint dwTimeout, IDebugEventCallback2 pExprCallback, out IDebugProperty2 ppResult) { VariableInfo vi = VariableInfo.get(exp, m_eventDispatcher, m_frame); ppResult = new AD7Property(vi); m_frame._lastEvaluatedExpression = vi; return(VSConstants.S_OK); }