make "i" a member variable or property or make pScan a member method of some classclass YourClass
{
public int i = 0;
public void pScan() {...};
}YourClass yc = new YourClass();
yc.i = 6;new Thread(new ThreadStart(yc.pScan)).Start();
{
public int i = 0;
public void pScan() {...};
}YourClass yc = new YourClass();
yc.i = 6;new Thread(new ThreadStart(yc.pScan)).Start();
那如果多个线程去读、写,要防止冲突,是用lock吗?
是这样的
将10个文本文件数据使用多线程方式整理成一个文件.
1.使用多线程.在传递参数的时候,使用了成员变量,导致文件路径传递不正确.发生了冲突.
2.使用代理.ThreadStart其实就是一个无参数的代理,于是就自定义了一个代理,它可代参数.但是还是不正确
for (int i=0; i < 10; i++)
{
yc.i = i;
new Thread(new ThreadStart(yc.pScan)).Start();
}otherwise, no:for (int i=0; i < 10; i++)
{
YourClass yc = new YourClass();
yc.i = i;
new Thread(new ThreadStart(yc.pScan)).Start();
}