Thread thre = new Thread(new ThreadStart(Start));可以在之前建一个参数类,把参数放进去 public class Parameters { public string para1; public int para2; ... } 运行时,先定义 public Parameters Pa = new Parameters();Pa.para1="aaa"; Pa.para2=123; .....Thread thre = new Thread(new ThreadStart(Start));private void Statr() { string pa1 = Pa.para1; int pa2 = Pa.para2; ...... }
我的方法是用类来封装线程来实现传入参数,直接使用参数是不行的。 例如: Public Class test Private m_param1, m_param2 As Integer Public Sub New(ByVal param1 As Integer, ByVal param2 As Integer) m_param1 = param1 m_param2 = param2 End Sub Public Sub Start() Dim thd As System.Threading.Thread = New System.Threading.Thread(AddressOf Me.Proc) thd.Start() End Sub Private Sub Proc() m_param1 -= m_param2 End SubEnd Class
能否用public static 做参数,我要多次调用这个方法,但参数是变化的!
using System; using System.Threading;class ThreadSample { public static void Main() { ThreadSample ts= new ThreadSample(); } public ThreadSample() { int i; Thread newCounter = new Thread(new ThreadStart(Counter)); newCounter.Start(); for(i=0;i<20;i++) { Console.WriteLine("main: {0}",i); Thread.Sleep(2000); } } void Counter() { Thread.Sleep(4000); } }
public class Parameters
{
public string para1;
public int para2;
...
}
运行时,先定义
public Parameters Pa = new Parameters();Pa.para1="aaa";
Pa.para2=123;
.....Thread thre = new Thread(new ThreadStart(Start));private void Statr()
{
string pa1 = Pa.para1;
int pa2 = Pa.para2;
......
}
例如:
Public Class test
Private m_param1, m_param2 As Integer Public Sub New(ByVal param1 As Integer, ByVal param2 As Integer)
m_param1 = param1
m_param2 = param2
End Sub Public Sub Start()
Dim thd As System.Threading.Thread = New System.Threading.Thread(AddressOf Me.Proc)
thd.Start()
End Sub Private Sub Proc()
m_param1 -= m_param2
End SubEnd Class
using System.Threading;class ThreadSample
{
public static void Main()
{
ThreadSample ts= new ThreadSample();
}
public ThreadSample()
{
int i;
Thread newCounter = new Thread(new ThreadStart(Counter)); newCounter.Start();
for(i=0;i<20;i++)
{
Console.WriteLine("main: {0}",i);
Thread.Sleep(2000);
}
}
void Counter()
{
Thread.Sleep(4000);
}
}