Terraria
v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
MultiAsyncResult.cs
Go to the documentation of this file.
1
using
System.Threading
;
2
3
namespace
System.Net.Mime
;
4
5
internal
sealed
class
MultiAsyncResult
:
System
.Net.
LazyAsyncResult
6
{
7
private
readonly
object
_context
;
8
9
private
int
_outstanding
;
10
11
internal
object
Context
=>
_context
;
12
13
internal
MultiAsyncResult
(
object
context, AsyncCallback callback,
object
state
)
14
: base(context,
state
, callback)
15
{
16
_context
= context;
17
}
18
19
internal
void
Enter
()
20
{
21
Increment
();
22
}
23
24
internal
void
Leave
()
25
{
26
Decrement
();
27
}
28
29
internal
void
Leave
(
object
result)
30
{
31
base.Result = result;
32
Decrement
();
33
}
34
35
private
void
Decrement
()
36
{
37
if
(
Interlocked
.
Decrement
(ref
_outstanding
) == -1)
38
{
39
InvokeCallback
(base.Result);
40
}
41
}
42
43
private
void
Increment
()
44
{
45
Interlocked
.
Increment
(ref
_outstanding
);
46
}
47
48
internal
void
CompleteSequence
()
49
{
50
Decrement
();
51
}
52
53
internal
static
object
End
(
IAsyncResult
result)
54
{
55
MultiAsyncResult
multiAsyncResult = (
MultiAsyncResult
)result;
56
multiAsyncResult.
InternalWaitForCompletion
();
57
return
multiAsyncResult.
Result
;
58
}
59
}
System.Net.LazyAsyncResult.InvokeCallback
void InvokeCallback()
Definition
LazyAsyncResult.cs:203
System.Net.LazyAsyncResult.InternalWaitForCompletion
object InternalWaitForCompletion()
Definition
LazyAsyncResult.cs:270
System.Net.LazyAsyncResult.Result
object Result
Definition
LazyAsyncResult.cs:98
System.Net.LazyAsyncResult
Definition
LazyAsyncResult.cs:7
System.Net.Mime.MultiAsyncResult.Context
object Context
Definition
MultiAsyncResult.cs:11
System.Net.Mime.MultiAsyncResult.Increment
void Increment()
Definition
MultiAsyncResult.cs:43
System.Net.Mime.MultiAsyncResult.CompleteSequence
void CompleteSequence()
Definition
MultiAsyncResult.cs:48
System.Net.Mime.MultiAsyncResult.Decrement
void Decrement()
Definition
MultiAsyncResult.cs:35
System.Net.Mime.MultiAsyncResult.MultiAsyncResult
MultiAsyncResult(object context, AsyncCallback callback, object state)
Definition
MultiAsyncResult.cs:13
System.Net.Mime.MultiAsyncResult.Leave
void Leave(object result)
Definition
MultiAsyncResult.cs:29
System.Net.Mime.MultiAsyncResult._outstanding
int _outstanding
Definition
MultiAsyncResult.cs:9
System.Net.Mime.MultiAsyncResult._context
readonly object _context
Definition
MultiAsyncResult.cs:7
System.Net.Mime.MultiAsyncResult.Leave
void Leave()
Definition
MultiAsyncResult.cs:24
System.Net.Mime.MultiAsyncResult.Enter
void Enter()
Definition
MultiAsyncResult.cs:19
System.Net.Mime.MultiAsyncResult.End
static object End(IAsyncResult result)
Definition
MultiAsyncResult.cs:53
System.Net.Mime.MultiAsyncResult
Definition
MultiAsyncResult.cs:6
System.Threading.Interlocked.Decrement
static int Decrement(ref int location)
Definition
Interlocked.cs:20
System.Threading.Interlocked.Increment
static int Increment(ref int location)
Definition
Interlocked.cs:10
System.Threading.Interlocked
Definition
Interlocked.cs:9
System.IAsyncResult
Definition
IAsyncResult.cs:6
System.Net.Mime
Definition
Base64Encoder.cs:1
System.Threading
Definition
TaskToApm.cs:3
System.ExceptionArgument.state
@ state
System
Definition
BlockingCollection.cs:8
source
System.Net.Mail
System.Net.Mime
MultiAsyncResult.cs
Generated by
1.10.0