gpt4 book ai didi

c# - 为什么在调试主线程时工作线程不执行?

转载 作者:行者123 更新时间:2023-11-30 19:22:25 24 4
gpt4 key购买 nike

我创建了一个控制台测试应用程序,它在 2 个单独的线程上创建一个对象并调用 2 个函数。一个线程以相反的顺序打印 1-20 中的数字。

问题是在调试第一个工作线程时不会被触发,直到我不停止调试主线程(即我按 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);
}
}

最佳答案

我不确定这是否是 Visual Studio 或 CLR 中的限制,但在一个线程上设置断点将停止所有线程。

如果您想暂停一个线程,您可以通过 Debug..Threads 窗口执行此操作,您可以在那里暂停和恢复线程。

关于c# - 为什么在调试主线程时工作线程不执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1221022/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com