Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
QueueUserWorkItemCallback.cs
Go to the documentation of this file.
1namespace System.Threading;
2
3internal sealed class QueueUserWorkItemCallback : QueueUserWorkItemCallbackBase
4{
5 private WaitCallback _callback;
6
7 private readonly object _state;
8
9 private readonly ExecutionContext _context;
10
11 private static readonly Action<QueueUserWorkItemCallback> s_executionContextShim = delegate(QueueUserWorkItemCallback quwi)
12 {
13 WaitCallback callback = quwi._callback;
14 quwi._callback = null;
15 callback(quwi._state);
16 };
17
18 internal QueueUserWorkItemCallback(WaitCallback callback, object state, ExecutionContext context)
19 {
20 _callback = callback;
21 _state = state;
22 _context = context;
23 }
24
25 public override void Execute()
26 {
27 base.Execute();
28 ExecutionContext.RunForThreadPoolUnsafe(_context, s_executionContextShim, in this);
29 }
30}
32{
33 private Action<TState> _callback;
34
35 private readonly TState _state;
36
37 private readonly ExecutionContext _context;
38
39 internal QueueUserWorkItemCallback(Action<TState> callback, TState state, ExecutionContext context)
40 {
41 _callback = callback;
42 _state = state;
43 _context = context;
44 }
45
46 public override void Execute()
47 {
48 base.Execute();
49 Action<TState> callback = _callback;
50 _callback = null;
51 ExecutionContext.RunForThreadPoolUnsafe(_context, callback, in _state);
52 }
53}
static readonly Action< QueueUserWorkItemCallback > s_executionContextShim
QueueUserWorkItemCallback(WaitCallback callback, object state, ExecutionContext context)
QueueUserWorkItemCallback(Action< TState > callback, TState state, ExecutionContext context)