@@ -32,15 +32,33 @@ internal static void LogWithThreadPoolStats(this ILogger? log, string message)
3232 return ;
3333 }
3434
35- var sb = new StringBuilder ( ) ;
36- sb . Append ( message ) ;
3735 _ = PerfCounterHelper . GetThreadPoolStats ( out string iocp , out string worker , out string ? workItems ) ;
38- sb . Append ( ", IOCP: " ) . Append ( iocp ) . Append ( ", WORKER: " ) . Append ( worker ) ;
36+
37+ #if NET6_0_OR_GREATER
38+ // use DISH when possible
39+ // similar to: var composed = $"{message}, IOCP: {iocp}, WORKER: {worker}, ..."; on net6+
40+ var dish = new System . Runtime . CompilerServices . DefaultInterpolatedStringHandler ( 26 , 4 ) ;
41+ dish . AppendFormatted ( message ) ;
42+ dish . AppendLiteral ( ", IOCP: " ) ;
43+ dish . AppendFormatted ( iocp ) ;
44+ dish . AppendLiteral ( ", WORKER: " ) ;
45+ dish . AppendFormatted ( worker ) ;
46+ if ( workItems is not null )
47+ {
48+ dish . AppendLiteral ( ", POOL: " ) ;
49+ dish . AppendFormatted ( workItems ) ;
50+ }
51+ var composed = dish . ToStringAndClear ( ) ;
52+ #else
53+ var sb = new StringBuilder ( ) ;
54+ sb . Append ( message ) . Append ( ", IOCP: " ) . Append ( iocp ) . Append ( ", WORKER: " ) . Append ( worker ) ;
3955 if ( workItems is not null )
4056 {
4157 sb . Append ( ", POOL: " ) . Append ( workItems ) ;
4258 }
43- log . LogInformationThreadPoolStats ( sb . ToString ( ) ) ;
59+ var composed = sb . ToString ( ) ;
60+ #endif
61+ log . LogInformationThreadPoolStats ( composed ) ;
4462 }
4563
4664 // Generated LoggerMessage methods
0 commit comments