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

XFEExtension

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

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

XFEstudio/XFEExtension

Task拓展新增XFE等待器,可以实现等待某个线程执行完某个任务并返回结果

ed927e7
XFE工作室室长 <mail@xfegzs.com>
提交于

代码差异

1 个文件 +39 -0
Modified XFE各类拓展/TaskExtension.cs +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 }