Không chỉ ThreadStart
mong đợi các phương thức trống, nó cũng mong đợi họ không thực hiện bất kỳ đối số nào! Bạn có thể bọc nó trong một lambda, một đại biểu ẩn danh, hoặc một hàm tĩnh có tên.
Dưới đây là một cách để làm việc đó:
string res = null;
Thread newThread = new Thread(() => {res = sayHello("world!");});
newThread.Start();
newThread.Join(1000);
Console.Writeline(res);
Dưới đây là một cú pháp:
Thread newThread = new Thread(delegate() {sayHello("world!");});
newThread.Start();
Cú pháp thứ ba (với một hàm có tên) là nhàm chán nhất:
// Define a "wrapper" function
static void WrapSayHello() {
sayHello("world!);
}
// Call it from some other place
Thread newThread = new Thread(WrapSayHello);
newThread.Start();
Nó đã được hữu ích cho tôi. Cảm ơn bạn. –
Tôi không thể nhận được giá trị trả lại. Làm thế nào có thể sử dụng giá trị trả về? –
[ParameterizedThreadStart Delegate] (http://msdn.microsoft.com/en-us/library/system.threading.parameterizedthreadstart.aspx) –