我创建了一个控制台测试应用程序,它创建了一个对象并在两个单独的线程上调用2个函数。
一个线程以1-20的数字打印,另一个线程以相反的顺序打印。
问题是,在调试时,只有当我停止主线程的调试(即按下f5)时,第一个工作线程才会启动。有什么解决方法吗?
问题是,在调试时,只有当我停止主线程的调试(即按下f5)时,第一个工作线程才会启动。有什么解决方法吗?
class Program
{
static void Main(string[] args)
{
DisplayData dd = new DisplayData();
ThreadStart ts1 = new ThreadStart(dd.DisplayNumber);
Thread t1 = new Thread(ts1);
t1.Name = "Display Numbers";
ThreadStart ts2 = new ThreadStart(dd.ReverseNumbers);
Thread t2 = new Thread(ts2);
t2.Name = "Reverse Numbers";
t1.Start(); //Keep 1st break point at this location. Then press F10.
t2.Start(); //Keep break point at this location permanently
}
public class DisplayData
{
public void DisplayNumber()
{
int length = 20;
Console.WriteLine("\nNumbers in correct order.\n");
for (int i = 0; i < length; i++)
{
Console.WriteLine("DN: The value of i is: " + (i+1) + " " + Thread.CurrentThread.ManagedThreadId + " " + Thread.CurrentThread.Name);
//Thread.Sleep(1000);
}
}
public void ReverseNumbers()
{
int length = 20;
Console.WriteLine("\nNumbers in reverse order.\n");
for (int i = 0; i < length; i++)
{
Console.WriteLine("RN: The value of i is: " + (length - i) + " " + Thread.CurrentThread.ManagedThreadId + " " + Thread.CurrentThread.Name);
//Thread.Sleep(1000);
}
}