Mono.Debugger.Thread.RuntimeInvoke C# (CSharp) Method

RuntimeInvoke() public method

public RuntimeInvoke ( TargetFunctionType function, TargetStructObject object_argument, TargetObject param_objects, RuntimeInvokeFlags flags ) : RuntimeInvokeResult
function Mono.Debugger.Languages.TargetFunctionType
object_argument Mono.Debugger.Languages.TargetStructObject
param_objects Mono.Debugger.Languages.TargetObject
flags RuntimeInvokeFlags
return RuntimeInvokeResult
        public RuntimeInvokeResult RuntimeInvoke(TargetFunctionType function,
							  TargetStructObject object_argument,
							  TargetObject[] param_objects,
							  RuntimeInvokeFlags flags)
        {
            lock (this) {
                check_alive ();
                RuntimeInvokeResult result = new RuntimeInvokeResult (this);
                servant.RuntimeInvoke (
                    function, object_argument, param_objects,
                    flags, result);
                return result;
            }
        }

Same methods

Thread::RuntimeInvoke ( TargetFunctionType function, TargetStructObject object_argument, TargetObject param_objects, bool is_virtual, bool debug ) : RuntimeInvokeResult

Usage Example

示例#1
0
        public static EvaluationResult GetProperty(Thread thread, TargetPropertyInfo property,
							    TargetStructObject instance, EvaluationFlags flags,
							    int timeout, out string error, out TargetObject result)
        {
            error = null;

            RuntimeInvokeResult rti;
            try {
                RuntimeInvokeFlags rti_flags = RuntimeInvokeFlags.VirtualMethod;

                if ((flags & EvaluationFlags.NestedBreakStates) != 0)
                    rti_flags |= RuntimeInvokeFlags.NestedBreakStates;

                rti = thread.RuntimeInvoke (
                    property.Getter, instance, new TargetObject [0], rti_flags);

                if (!rti.CompletedEvent.WaitOne (timeout, false)) {
                    rti.Abort ();
                    result = null;
                    return EvaluationResult.Timeout;
                }

                if ((rti.TargetException != null) &&
                    (rti.TargetException.Type == TargetError.ClassNotInitialized)) {
                    result = null;
                    error = rti.ExceptionMessage;
                    return EvaluationResult.NotInitialized;
                }

                if (rti.Result is Exception) {
                    result = null;
                    error = ((Exception) rti.Result).Message;
                    return EvaluationResult.UnknownError;
                }

                result = (TargetObject) rti.ReturnObject;

                if (rti.ExceptionMessage != null) {
                    error = rti.ExceptionMessage;
                    return EvaluationResult.Exception;
                } else if (rti.ReturnObject == null) {
                    rti.Abort ();
                    return EvaluationResult.UnknownError;
                }

                return EvaluationResult.Ok;
            } catch (TargetException ex) {
                result = null;
                error = ex.ToString ();
                return EvaluationResult.UnknownError;
            }
        }
All Usage Examples Of Mono.Debugger.Thread::RuntimeInvoke