for (int i = 1; i < 100; i++)
{
Thread m_thread;
AA=i ; // AA是全局变量
m_thread = new Thread(new ThreadStart(A));
m_thread.Start();
}
void A()
{
Console.WriteLine(AA.ToString());// AA是全局变量
}
{
Thread m_thread;
AA=i ; // AA是全局变量
m_thread = new Thread(new ThreadStart(A));
m_thread.Start();
}
void A()
{
Console.WriteLine(AA.ToString());// AA是全局变量
}
m_thread = new Thread(new ThreadStart(A));
m_thread.Start();
}
void A()
{
for(int i=1; i<101;)
Console.WriteLine( i.ToString() );
m_thread.Ar...//不记得了就是把这个线程禁止的方法
}
==>
m_thread.Abort();
using System.Threading;class Demo
{
static int AA;
static void Main()
{
Thread m_thread;
for (int i = 1; i < 100; i++)
{
AA = i ; // AA是全局变量
m_thread = new Thread(new ThreadStart(A));
m_thread.Start();
Thread.Sleep(10);
}
}
static void A()
{
Console.WriteLine(AA.ToString());// AA是全局变量
}}
??????????你的内存有多大
我举这个例子只是简化问题而已
我现在要做的是线程扫描TREEVIEW的节点
扫描的的同时调用另一个线程来获取节点的值(传的参数就是节点值),然后输出我现在的问题是输出的不是按顺序的,
应该怎摸办
我尝试用LOCK()锁住(改变参数和输出节点)的代码,但是没用
public void print(string LinkUrl)
{
lock (LinkUrl)
{
输出节点值;
}
}
//线程函数
void A()
{ 节点集=获得节点集();
foreach(每个节点)
{
print(节点.text);
}
}
//启动线程
Thread m_thread;
m_thread = new Thread(new ThreadStart(A));
m_thread.Start();
private Mutex mUnique = new Mutex();//Define it as class memberfor (int i = 1; i < 100; i++)
{
Thread m_thread;
mUnique.WaitOne();
AA=i ; // AA是全局变量
mUnique.ReleaseMutex();
m_thread = new Thread(new ThreadStart(A));
m_thread.Start();
}
void A()
{
mUnique.WaitOne();
Console.WriteLine(AA.ToString());// AA是全局变量
mUnique.ReleaseMutex();
}
private Mutex mUnique = new Mutex();//Define it as class memberfor (int i = 1; i < 100; i++)
{
Thread m_thread;
mUnique.WaitOne();
AA=i ; // AA是全局变量
m_thread = new Thread(new ThreadStart(A));
m_thread.Start();
}
void A()
{
Console.WriteLine(AA.ToString());// AA是全局变量
mUnique.ReleaseMutex();
}
{
Thread m_thread;
AA=i ; // AA是全局变量
m_thread = new Thread(new ThreadStart(A));
m_thread.Start();
m_thread.Join();
}
void A()
{
Console.WriteLine(AA.ToString());// AA是全局变量
}