-
Notifications
You must be signed in to change notification settings - Fork 42
/
DispatchSource+MemoryPressure.xml
151 lines (147 loc) · 8.03 KB
/
DispatchSource+MemoryPressure.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
<Type Name="DispatchSource+MemoryPressure" FullName="CoreFoundation.DispatchSource+MemoryPressure">
<TypeSignature Language="C#" Value="public class DispatchSource.MemoryPressure : CoreFoundation.DispatchSource" />
<TypeSignature Language="ILAsm" Value=".class nested public auto ansi beforefieldinit DispatchSource/MemoryPressure extends CoreFoundation.DispatchSource" />
<TypeSignature Language="DocId" Value="T:CoreFoundation.DispatchSource.MemoryPressure" />
<TypeSignature Language="F#" Value="type DispatchSource.MemoryPressure = class
 inherit DispatchSource" />
<AssemblyInfo>
<AssemblyName>Xamarin.iOS</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo>
<AssemblyName>Xamarin.Mac</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Base>
<BaseTypeName>CoreFoundation.DispatchSource</BaseTypeName>
</Base>
<Interfaces />
<Docs>
<summary>Sources of this type monitor the system memory pressure condition for state changes. </summary>
<remarks>
<para>Elevated memory pressure is a system-wide condition that applications registered for this source should react to by changing their future memory use behavior, e.g. by reducing cache sizes of newly initiated operations until memory pressure returns back to normal.</para>
<para>
</para>
<para>However, applications should not traverse and discard existing caches for past operations when the system memory pressure enters an elevated state, as that is likely to trigger VM operations that will further aggravate system memory pressure.</para>
<example>
<code lang="c#"><![CDATA[
var dispatchSource = new DispatchSource.MemoryPressure (
MemoryPressureFlags.Critical | MemoryPressureFlags.Warn | MemoryPressureFlags.Normal,
DispatchQueue.MainQueue);
dispatchSource.SetRegistrationHandler (() => {
Console.WriteLine ("Memory monitor registered");
});
dispatchSource.SetEventHandler (() => {
var pressureLevel = dispatchSource.PressureFlags;
Console.WriteLine ("Memory worning of level: {0}", pressureLevel);
dispatchSource.Cancel ();
});
dispatchSource.SetCancelHandler (() => {
Console.WriteLine ("Memory monitor cancelled");
});
dispatchSource.Resume ();
]]></code>
</example>
</remarks>
</Docs>
<Members>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="public MemoryPressure (IntPtr handle);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(native int handle) cil managed" />
<MemberSignature Language="DocId" Value="M:CoreFoundation.DispatchSource.MemoryPressure.#ctor(System.IntPtr)" />
<MemberSignature Language="F#" Value="new CoreFoundation.DispatchSource.MemoryPressure : nativeint -> CoreFoundation.DispatchSource.MemoryPressure" Usage="new CoreFoundation.DispatchSource.MemoryPressure handle" />
<MemberType>Constructor</MemberType>
<AssemblyInfo>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
<AssemblyName>Xamarin.iOS</AssemblyName>
</AssemblyInfo>
<AssemblyInfo>
<AssemblyName>Xamarin.Mac</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Parameters>
<Parameter Name="handle" Type="System.IntPtr" />
</Parameters>
<Docs>
<param name="handle">To be added.</param>
<summary>To be added.</summary>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="public MemoryPressure (CoreFoundation.MemoryPressureFlags monitorFlags = CoreFoundation.MemoryPressureFlags.Normal | CoreFoundation.MemoryPressureFlags.Warn, CoreFoundation.DispatchQueue queue = null);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(valuetype CoreFoundation.MemoryPressureFlags monitorFlags, class CoreFoundation.DispatchQueue queue) cil managed" />
<MemberSignature Language="DocId" Value="M:CoreFoundation.DispatchSource.MemoryPressure.#ctor(CoreFoundation.MemoryPressureFlags,CoreFoundation.DispatchQueue)" />
<MemberSignature Language="F#" Value="new CoreFoundation.DispatchSource.MemoryPressure : CoreFoundation.MemoryPressureFlags * CoreFoundation.DispatchQueue -> CoreFoundation.DispatchSource.MemoryPressure" Usage="new CoreFoundation.DispatchSource.MemoryPressure (monitorFlags, queue)" />
<MemberType>Constructor</MemberType>
<AssemblyInfo>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
<AssemblyName>Xamarin.iOS</AssemblyName>
</AssemblyInfo>
<AssemblyInfo>
<AssemblyName>Xamarin.Mac</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Parameters>
<Parameter Name="monitorFlags" Type="CoreFoundation.MemoryPressureFlags" />
<Parameter Name="queue" Type="CoreFoundation.DispatchQueue" />
</Parameters>
<Docs>
<param name="monitorFlags">Memory pressure flags to monitor. The default just monitors memory pressure warnings and the return to normal.</param>
<param name="queue">The target queue for this dispatch source object. Pass null to use the default target queue (the default priority global concurrent queue).</param>
<summary>To be added.</summary>
<remarks>
<para>
</para>
</remarks>
</Docs>
</Member>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="public MemoryPressure (IntPtr handle, bool owns);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(native int handle, bool owns) cil managed" />
<MemberSignature Language="DocId" Value="M:CoreFoundation.DispatchSource.MemoryPressure.#ctor(System.IntPtr,System.Boolean)" />
<MemberSignature Language="F#" Value="new CoreFoundation.DispatchSource.MemoryPressure : nativeint * bool -> CoreFoundation.DispatchSource.MemoryPressure" Usage="new CoreFoundation.DispatchSource.MemoryPressure (handle, owns)" />
<MemberType>Constructor</MemberType>
<AssemblyInfo>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
<AssemblyName>Xamarin.iOS</AssemblyName>
</AssemblyInfo>
<AssemblyInfo>
<AssemblyName>Xamarin.Mac</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Parameters>
<Parameter Name="handle" Type="System.IntPtr" />
<Parameter Name="owns" Type="System.Boolean" />
</Parameters>
<Docs>
<param name="handle">To be added.</param>
<param name="owns">To be added.</param>
<summary>To be added.</summary>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="PressureFlags">
<MemberSignature Language="C#" Value="public CoreFoundation.MemoryPressureFlags PressureFlags { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance valuetype CoreFoundation.MemoryPressureFlags PressureFlags" />
<MemberSignature Language="DocId" Value="P:CoreFoundation.DispatchSource.MemoryPressure.PressureFlags" />
<MemberSignature Language="F#" Value="member this.PressureFlags : CoreFoundation.MemoryPressureFlags" Usage="CoreFoundation.DispatchSource.MemoryPressure.PressureFlags" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
<AssemblyName>Xamarin.iOS</AssemblyName>
</AssemblyInfo>
<AssemblyInfo>
<AssemblyName>Xamarin.Mac</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>CoreFoundation.MemoryPressureFlags</ReturnType>
</ReturnValue>
<Docs>
<summary>Reports the condition that was observed.</summary>
<value>The condition observed.</value>
<remarks>The event handler can probe this property to determine why it was invoked.</remarks>
</Docs>
</Member>
</Members>
</Type>