C# 使用线程时UI没有响应
我使用C# 使用线程时UI没有响应,c#,multithreading,C#,Multithreading,我使用Thread启动两个函数AllCase,并并行运行它们 Thread t1, t2; t1 = new Thread(new ThreadStart(AllCase)) { Name = "Thread1" }; t1.Start(); t2 = new Thread(new ThreadStart(AllCase)) { Name = "Thread2" }; t2.Start(); t1.Join(); t2.Join(); 当线程启动时,我无法与应用程序的UI交互
Thread
启动两个函数AllCase
,并并行运行它们
Thread t1, t2;
t1 = new Thread(new ThreadStart(AllCase))
{
Name = "Thread1"
};
t1.Start();
t2 = new Thread(new ThreadStart(AllCase))
{
Name = "Thread2"
};
t2.Start();
t1.Join();
t2.Join();
当线程
启动时,我无法与应用程序的UI交互
我用英语阅读
但我想使用Name=“Thread1”
,如下所示:
int idx = int.Parse(Thread.CurrentThread.Name.Replace("Thread", "")) - 1;
值idx
以了解此过程[idx]易于操作
在我的情况下,BackgroundWorker
工作不正常
那么,有什么方法可以解决我的问题吗?删除这两行:
t1.Join();
t2.Join();
您的GUI应该会再次响应。当然,除非您必须按此顺序等待方法完成,否则您实际上不需要使用线程。删除这两行:
t1.Join();
t2.Join();
您的GUI应该会再次响应。当然,除非您必须按此顺序等待方法完成,否则您实际上不需要使用线程。它正在工作。删除两行将出现我的代码问题。但我会解决的。非常感谢,不客气。出于好奇,为什么要使用join等待线程完成?在我的例子中,
t1
将收集数据,t2
需要处理这些数据。但是我读了你的评论:,当然,除非你必须按照这个顺序等待方法完成,但是你真的不需要使用线程。
。我理解。谢谢@mongzhu。你能帮我解决这个问题吗?它起作用了。删除两行将出现我的代码问题。但我会解决的。非常感谢,不客气。出于好奇,为什么要使用join等待线程完成?在我的例子中,t1
将收集数据,t2
需要处理这些数据。但是我读了你的评论:,当然,除非你必须按照这个顺序等待方法完成,但是你真的不需要使用线程。
。我理解。谢谢@mongzhu。你能帮我解决这个问题吗?