http://www.microsoft.com/china/msdn/library/dv_vstechart/html/vbtchAsyncProcVB.asp看 线程参数和返回值 部分,以下是一个VB.net 范例代码,改写成C#的也很简单的Class TasksClass Friend StrArg As String Friend RetVal As Boolean Sub SomeTask() ' 将 StrArg 字段用作参数。 MsgBox("StrArg 包含字符串" & StrArg) RetVal = True ' 设置返回参数的返回值。 End Sub End Class ' 要使用类,请设置存储参数的属性或字段, ' 然后,根据需要异步调用方法。 Sub DoWork() Dim Tasks As New TasksClass() Dim Thread1 As New System.Threading.Thread( _ AddressOf Tasks.SomeTask) Tasks.StrArg = "某个参数" ' 设置用作参数的字段。 Thread1.Start() ' 启动新线程。 Thread1.Join() ' 等待线程 1 运行结束。 ' 显示返回值。 MsgBox("线程 1 返回值" & Tasks.RetVal) End Sub
再谈 Windows 窗体多线程 http://www.microsoft.com/china/msdn/library/dnforms/html/winforms08162002.asp
可以这样! public class ab { int a; public ab(int a) { this.a=a;//传入的参数 } public void run()//要运行的内容 { Messagebox.show(this.a.toString()); }}public class the { public void start() { abc a = new a(4);//传入一个参数4 System.Threading.Thread th = new System.Threading.Thread(new System.Threading.ThreadStart(a.run)); th.Start(); } }
desrie(leir): C#里面可没有AddressOf运算符Dim Thread1 As New System.Threading.Thread(AddressOf Tasks.SomeTask)翻译成System.Threading.Thread Thread1 = new System.Threading.Thread(new System.Threading.ThreadStart(Tasks.SomeTask)才对
Friend StrArg As String
Friend RetVal As Boolean
Sub SomeTask()
' 将 StrArg 字段用作参数。
MsgBox("StrArg 包含字符串" & StrArg)
RetVal = True ' 设置返回参数的返回值。
End Sub
End Class
' 要使用类,请设置存储参数的属性或字段,
' 然后,根据需要异步调用方法。
Sub DoWork()
Dim Tasks As New TasksClass()
Dim Thread1 As New System.Threading.Thread( _
AddressOf Tasks.SomeTask)
Tasks.StrArg = "某个参数" ' 设置用作参数的字段。
Thread1.Start() ' 启动新线程。
Thread1.Join() ' 等待线程 1 运行结束。
' 显示返回值。
MsgBox("线程 1 返回值" & Tasks.RetVal)
End Sub
http://www.microsoft.com/china/msdn/library/dnforms/html/winforms08162002.asp
{
protected string StrArg;
protected bool RetVal;
private void SomeTask()
{
// 将 StrArg 字段用作参数。
System.Windows.MessageBox.Show("StrArg 包含字符串" +StrArg);
RetVal = true; ' 设置返回参数的返回值。
}
}//要使用类,请设置存储参数的属性或字段,
// 然后,根据需要异步调用方法。
private void DoWork()
{
TasksClass Tasks =new TasksClass();
System.Threading.Thread Thread1 =new System.Threading.Thread( AddressOf Tasks.SomeTask);
Tasks.StrArg = "某个参数" ;// 设置用作参数的字段。
Thread1.Start();// 启动新线程。
Thread1.Join();//等待线程 1 运行结束。
//显示返回值。
System.Windows.MessageBox.Show("线程 1 返回值" & Tasks.RetVal);
}
}
public class ab
{
int a;
public ab(int a)
{
this.a=a;//传入的参数
}
public void run()//要运行的内容
{
Messagebox.show(this.a.toString());
}}public class the
{
public void start()
{
abc a = new a(4);//传入一个参数4
System.Threading.Thread th = new System.Threading.Thread(new System.Threading.ThreadStart(a.run));
th.Start(); }
}
C#里面可没有AddressOf运算符Dim Thread1 As New System.Threading.Thread(AddressOf Tasks.SomeTask)翻译成System.Threading.Thread Thread1 = new System.Threading.Thread(new System.Threading.ThreadStart(Tasks.SomeTask)才对