XFEExtension
【DLL】XFE各类拓展是一个C#的DLL库,旨在优化C#代码中常用语句的使用,并提供更简洁的访问方式,同时提供Xunit测试框架,快速搭建服务器/客户端,免费ChatGPTAPI接口,免费通讯服务器,XFE下载器,新增格式等
关注
0
Fork
0
Star
0
返回提交历史
Modified
XFE各类拓展/TaskExtension.cs
+39
-0
XFEstudio/XFEExtension
Task拓展新增XFE等待器,可以实现等待某个线程执行完某个任务并返回结果
ed927e7
代码差异
1 个文件
+39
-0
@@ -1,5 +1,6 @@
1
1
using System;
2
2
using System.Diagnostics;
3
using System.Runtime.CompilerServices;
3
4
using System.Threading.Tasks;
4
5
5
6
namespace XFE各类拓展.TaskExtension
@@ -9,6 +10,12 @@ namespace XFE各类拓展.TaskExtension
9
10
/// </summary>
10
11
public static class TaskExtension
11
12
{
13
/// <summary>
14
/// 传入值并终止等待器
15
/// </summary>
16
/// <typeparam name="T">泛型</typeparam>
17
/// <param name="result">目标等待器返回值</param>
18
public delegate void EndTaskTrigger<T>(T result);
12
19
private static long CTimeCounter = 0;
13
20
#region 新建任务并开始
14
21
/// <summary>
@@ -81,5 +88,37 @@ namespace XFE各类拓展.TaskExtension
81
88
Console.WriteLine($"标识名:{timerName}\t执行批次:{CTimeCounter}\t执行时间: {elapsedTime.TotalMilliseconds * 1000:F3} 纳秒");
82
89
return elapsedTime;
83
90
}
91
/// <summary>
92
/// XFE等待器
93
/// </summary>
94
/// <typeparam name="T">泛型</typeparam>
95
public class XFEWaitTask<T>
96
{
97
private TaskCompletionSource<T> WaitTaskSource { get; set; } = new TaskCompletionSource<T>();
98
/// <summary>
99
/// 结束任务并返回
100
/// </summary>
101
/// <param name="result"></param>
102
public void EndTask(T result)
103
{
104
WaitTaskSource.SetResult(result);
105
}
106
/// <summary>
107
/// 获取等待器
108
/// </summary>
109
/// <returns></returns>
110
public TaskAwaiter<T> GetAwaiter()
111
{
112
return WaitTaskSource.Task.GetAwaiter();
113
}
114
/// <summary>
115
/// XFE等待器
116
/// </summary>
117
/// <param name="endTaskAndReturn">触发任务结束事件</param>
118
public XFEWaitTask(ref EndTaskTrigger<T> endTaskAndReturn)
119
{
120
endTaskAndReturn += EndTask;
121
}
122
}
84
123
}
85
124
}