Better debug message for DeferredInvokeProxy

This commit is contained in:
Yoshi Askharoun
2026-07-26 11:15:22 -05:00
parent e65399ed8c
commit fe8a0b9760
3 changed files with 18 additions and 7 deletions
+8 -4
View File
@@ -10,13 +10,17 @@ namespace Microsoft.Iris
{ {
internal class DeferredInvokeProxy internal class DeferredInvokeProxy
{ {
private DeferredInvokeHandler _method; private readonly DeferredInvokeHandler _method;
public static DeferredHandler Thunk(DeferredInvokeHandler method) => new DeferredHandler(new DeferredInvokeProxy() private DeferredInvokeProxy(DeferredInvokeHandler method)
{ {
_method = method _method = method;
}.Thunk); }
public static DeferredHandler Thunk(DeferredInvokeHandler method) => new DeferredInvokeProxy(method).Thunk;
private void Thunk(object args) => _method(args); private void Thunk(object args) => _method(args);
public override string ToString() => $"{_method.Method.DeclaringType?.FullName}.{_method.Method.Name}";
} }
} }
+6 -1
View File
@@ -73,13 +73,18 @@ namespace Microsoft.Iris.Queues
QueueItem nextItem = queue.GetNextItem(); QueueItem nextItem = queue.GetNextItem();
if (nextItem != null) if (nextItem != null)
{ {
Application.Debugger?.LogDispatcher(nextItem.ToDebugPacketString()); var debugString = nextItem.ToDebugPacketString();
Application.Debugger?.LogDispatcher(debugString);
Trace.WriteLine(TraceCategory.Queues, 0, "Dispatcher nextItem := {0}", debugString);
nextItem.Dispatch(); nextItem.Dispatch();
} }
else else
{
break; break;
} }
} }
}
finally finally
{ {
LeaveDispatch(); LeaveDispatch();
+4 -2
View File
@@ -158,14 +158,16 @@ namespace Microsoft.Iris.Session
public override string ToDebugPacketString() public override string ToDebugPacketString()
{ {
string packetString = _target?.Target == null if (_target.Target is DeferredInvokeProxy deferredInvokeProxy)
return $"{deferredInvokeProxy}({_param})";
var packetString = _target?.Target == null
? string.Empty ? string.Empty
: $"{_target.Target}."; : $"{_target.Target}.";
packetString += _target switch packetString += _target switch
{ {
SimpleCallback simpleCallback => simpleCallback.Method.Name, SimpleCallback simpleCallback => simpleCallback.Method.Name,
DeferredHandler deferredHandler => $"{deferredHandler.Method.Name}({_param})",
EventHandler eventHandler => $"{eventHandler.Method.Name}({_param}, {_args})", EventHandler eventHandler => $"{eventHandler.Method.Name}({_param}, {_args})",
_ when _param is IDeferredInvokeItem deferredInvokeItem => deferredInvokeItem.ToString(), _ when _param is IDeferredInvokeItem deferredInvokeItem => deferredInvokeItem.ToString(),