【Csharp】Thread匿名方法初识

片段代码笔记

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
/// <summary>
/// 停止创建运行新任务和新线程,等待所有任务和线程执行完成。
/// </summary>
private void StopRuningTaskOrThreadAndExitOrRestart(bool restartFlag)
{
timer1.Enabled = false;//停止触发
if (switchstr == "1" && threadswitchstr == "1")
{
Thread t = new Thread((flag) =>
{
while (threadUseNum > 0)
{
Thread.Sleep(5000);
RefreshMsgBox(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + $"\t=>\t等待子任务执行完成退出:子任务数量:{threadUseNum}");
}
if ((bool)flag)
{
Process.Start(Application.ExecutablePath);
}
Environment.Exit(0);
});
t.IsBackground = true;
t.Start(restartFlag);
}
else if (switchstr == "1")
{
Thread t = new Thread((flag) =>
{
if (taskThread != null)
{
taskThread.Wait();//等待执行完成
}
if ((bool)flag)
{
Process.Start(Application.ExecutablePath);
}
Environment.Exit(0);
});
t.IsBackground = true;
t.Start(restartFlag);
}
}

作者

zhang

发布于

2022-01-06

更新于

2023-09-19

许可协议

CC BY-NC-SA 4.0

Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×