XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFEExtension

【DLL】XFE各类拓展是一个C#的DLL库,旨在优化C#代码中常用语句的使用,并提供更简洁的访问方式,同时提供Xunit测试框架,快速搭建服务器/客户端,免费ChatGPTAPI接口,免费通讯服务器,XFE下载器,新增格式等

公开
关注 0 Fork 0 Star 0
返回提交历史

XFEstudio/XFEExtension

Delete XFE各类拓展/ThreadExtention.cs

c29e848
Tom Smith <132526994+XFEstudio@users.noreply.github.com>
提交于

代码差异

1 个文件 +0 -141
Deleted XFE各类拓展/ThreadExtention.cs +0 -141
@@ -1,141 +0,0 @@
1 using System.Collections.Generic;
2 using System.Threading;
3 using System.Threading.Tasks;
4
5 namespace XFE各类拓展.ThreadExtension
6 {
7 /// <summary>
8 /// 线程的拓展
9 /// </summary>
10 public static class ThreadExtension
11 {
12 #region 等待线程状态
13 /// <summary>
14 /// 等待指定线程组的所有线程完成
15 /// </summary>
16 /// <param name="threads"></param>
17 /// <returns>等待任务</returns>
18 public static Task WaitThreadListComplete(this List<Thread> threads)
19 {
20 return Task.Run(() =>
21 {
22 while (true)
23 {
24 bool isAllThreadComplete = true;
25 foreach (var thread in threads)
26 {
27 if (thread.ThreadState != ThreadState.Stopped)
28 {
29 isAllThreadComplete = false;
30 break;
31 }
32 }
33 if (isAllThreadComplete)
34 {
35 break;
36 }
37 }
38 });
39 }
40 /// <summary>
41 /// 等待指定线程组的所有线程达到指定状态
42 /// </summary>
43 /// <param name="threads"></param>
44 /// <param name="threadState">线程的状态</param>
45 /// <returns></returns>
46 public static Task WaitThreadListComplete(this List<Thread> threads, ThreadState threadState)
47 {
48 return Task.Run(() =>
49 {
50 while (true)
51 {
52 bool isAllThreadComplete = true;
53 foreach (var thread in threads)
54 {
55 if (thread.ThreadState != threadState)
56 {
57 isAllThreadComplete = false;
58 break;
59 }
60 }
61 if (isAllThreadComplete)
62 {
63 break;
64 }
65 }
66 });
67 }
68 /// <summary>
69 /// 等待指定线程完成
70 /// </summary>
71 /// <param name="thread"></param>
72 /// <returns>等待任务</returns>
73 public static Task WaitThreadComplete(this Thread thread)
74 {
75 return Task.Run(() => { while (thread.ThreadState != ThreadState.Stopped) ; });
76 }
77 /// <summary>
78 /// 等待指定线程达到指定状态
79 /// </summary>
80 /// <param name="thread"></param>
81 /// <param name="threadState">线程的状态</param>
82 /// <returns></returns>
83 public static Task WaitThreadComplete(this Thread thread, ThreadState threadState)
84 {
85 return Task.Run(() => { while (thread.ThreadState != threadState) ; });
86 }
87 #endregion
88 #region 新建线程并开始
89 /// <summary>
90 /// 新建一个线程并开始
91 /// </summary>
92 /// <param name="method">线程方法</param>
93 /// <param name="parameter">传递的参数</param>
94 /// <returns></returns>
95 public static Thread StartNewThread(ParameterizedThreadStart method, object parameter)
96 {
97 Thread thread = new Thread(method);
98 thread.Start(parameter);
99 return thread;
100 }
101 /// <summary>
102 /// 新建一个线程并开始
103 /// </summary>
104 /// <param name="method">线程方法</param>
105 /// <returns></returns>
106 public static Thread StartNewThread(ThreadStart method)
107 {
108 Thread thread = new Thread(method);
109 thread.Start();
110 return thread;
111 }
112 /// <summary>
113 /// 新建一个线程并开始
114 /// </summary>
115 /// <param name="method">线程方法</param>
116 /// <param name="parameter">传递的参数</param>
117 /// <param name="apartmentState">线程的状态</param>
118 /// <returns></returns>
119 public static Thread StartNewThread(ParameterizedThreadStart method, object parameter, ApartmentState apartmentState)
120 {
121 Thread thread = new Thread(method);
122 thread.SetApartmentState(apartmentState);
123 thread.Start(parameter);
124 return thread;
125 }
126 /// <summary>
127 /// 新建一个线程并开始
128 /// </summary>
129 /// <param name="method">线程方法</param>
130 /// <param name="apartmentState">线程的状态</param>
131 /// <returns></returns>
132 public static Thread StartNewThread(ThreadStart method, ApartmentState apartmentState)
133 {
134 Thread thread = new Thread(method);
135 thread.SetApartmentState(apartmentState);
136 thread.Start();
137 return thread;
138 }
139 #endregion
140 }
141 }