1
- #nullable enable
2
- using System ;
1
+ using System ;
3
2
using System . Collections . Generic ;
4
3
using System . Threading . Tasks ;
5
4
@@ -8,8 +7,7 @@ namespace dotnetCampus.Threading
8
7
/// <summary>
9
8
/// 双缓存任务
10
9
/// </summary>
11
- /// <typeparam name="T"></typeparam>
12
- public class DoubleBufferTask < T >
10
+ public class DoubleBufferTask < T , TU > where T : class , ICollection < TU > , new ( )
13
11
{
14
12
/// <summary>
15
13
/// 创建双缓存任务,执行任务的方法放在 <paramref name="doTask"/> 方法
@@ -19,7 +17,7 @@ public class DoubleBufferTask<T>
19
17
/// <para></para>
20
18
/// 传入的 List<T> 就是需要执行的任务,请不要将传入的 List<T> 保存到本地字段
21
19
/// </param>
22
- public DoubleBufferTask ( Func < List < T > , Task > doTask )
20
+ public DoubleBufferTask ( Func < T , Task > doTask )
23
21
{
24
22
_doTask = doTask ;
25
23
}
@@ -28,7 +26,7 @@ public DoubleBufferTask(Func<List<T>, Task> doTask)
28
26
/// 加入任务
29
27
/// </summary>
30
28
/// <param name="t"></param>
31
- public void AddTask ( T t )
29
+ public void AddTask ( TU t )
32
30
{
33
31
DoubleBuffer . Add ( t ) ;
34
32
@@ -87,8 +85,8 @@ public Task WaitAllTaskFinish()
87
85
88
86
private event EventHandler ? Finished ;
89
87
90
- private readonly Func < List < T > , Task > _doTask ;
88
+ private readonly Func < T , Task > _doTask ;
91
89
92
- private DoubleBuffer < T > DoubleBuffer { get ; } = new DoubleBuffer < T > ( ) ;
90
+ private DoubleBuffer < T , TU > DoubleBuffer { get ; } = new DoubleBuffer < T , TU > ( new T ( ) , new T ( ) ) ;
93
91
}
94
92
}
0 commit comments