Nie tylko oczekuje się, że ThreadStart
będzie nieważne, ale także nie będzie przyjmować żadnych argumentów! Możesz zawinąć go w lambdę, anonimowy delegat lub nazwaną funkcję statyczną.
Oto jeden sposób to zrobić:
string res = null;
Thread newThread = new Thread(() => {res = sayHello("world!");});
newThread.Start();
newThread.Join(1000);
Console.Writeline(res);
Oto kolejny składnia:
Thread newThread = new Thread(delegate() {sayHello("world!");});
newThread.Start();
Trzeci składnia (o nazwie funkcji) jest najbardziej nudny:
// Define a "wrapper" function
static void WrapSayHello() {
sayHello("world!);
}
// Call it from some other place
Thread newThread = new Thread(WrapSayHello);
newThread.Start();
Jest to pomocne dla mnie. Dziękuję Ci. –
Nie mogłem uzyskać wartości zwracanej. Jak korzystać z wartości zwracanej? –
[ParameterizedThreadStart Delegate] (http://msdn.microsoft.com/en-us/library/system.threading.parameterizedthreadstart.aspx) –