Ich habe mich gerade gefragt wozu es bei ThreadPool.QueueUserWorkItem ein return value gibt.
Im Fehlerfall wird ja soweiso ne Exception geworfen. Somit kann die Methode doch gleich void sein. Welchen Sinn hat hier der return value?
hallo chavez:
true, wenn die Methode erfolgreich in die Warteschlange gestellt wurde. NotSupportedException wird ausgelöst, wenn die Arbeitsaufgabe nicht in die Warteschlange gestellt werden konnte.
Da dies der MSDN Kommentar ist wundert micht dies auch. Anscheinden wir nie false zurückgegeben.
Anfängliche Überlegung eines Überbleibsels aus .NET 1 Zeiten wurden dadurch zunichte gemacht da diese Methode erst seit 3.5 SP1 verfügbar ist.
Ich habe mir mal den Code im Reflector angesehen. Es gibt nur eine Stelle, wo es false geben könnte, und zwar nach dem Aufruf von
[SecurityCritical, SuppressUnmanagedCodeSecurity, DllImport("QCall", CharSet=CharSet.Unicode)]
internal static extern bool AdjustThreadsInPool(uint QueueLength);
Was diese aber macht, weiß ich jetzt nicht. Das werfen einer NotSupported habe ich nicht gefunden. 🤔
Ja, ist ein Überbleibsel aus 1.Xer Zeiten, "damals" hat die Methode keine Exception geworfen, sondern false zurückgegeben.
Siehe MSDN zu der 1.1er Version der Methode: ThreadPool.QueueUserWorkItem-Methode (WaitCallback) (Framework 1.1)
using System;class H{static string z(char[]c){string r="";for(int x=0;x<(677%666);x++)r+=c[
x];return r;}static void Main(){int[]c={798,218,229,592,232,274,813,585,229,842,275};char[]
b=new char[11];for(int p=0;p<((59%12));p++)b[p]=(char)(c[p]%121);Console.WriteLine(z(b));}}