Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用线程时UI没有响应_C#_Multithreading - Fatal编程技术网

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。你能帮我解决这个问题吗?