forked from herfulnerful/DreamWorld
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMicrosoft.VisualStudio.Threading.xml
7602 lines (7597 loc) · 493 KB
/
Microsoft.VisualStudio.Threading.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
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<?xml version="1.0"?>
<doc>
<assembly>
<name>Microsoft.VisualStudio.Threading</name>
</assembly>
<members>
<member name="T:Microsoft.VisualStudio.Threading.AsyncAutoResetEvent">
<summary>
An asynchronous implementation of an AutoResetEvent.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Threading.AsyncAutoResetEvent.signalAwaiters">
<summary>
A queue of folks awaiting signals.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Threading.AsyncAutoResetEvent.allowInliningAwaiters">
<summary>
Whether to complete the task synchronously in the <see cref="M:Microsoft.VisualStudio.Threading.AsyncAutoResetEvent.Set" /> method,
as opposed to asynchronously.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Threading.AsyncAutoResetEvent.onCancellationRequestHandler">
<summary>
A reusable delegate that points to the <see cref="M:Microsoft.VisualStudio.Threading.AsyncAutoResetEvent.OnCancellationRequest(System.Object)" /> method.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Threading.AsyncAutoResetEvent.signaled">
<summary>
A value indicating whether this event is already in a signaled state.
</summary>
<devremarks>
This should not need the volatile modifier because it is
always accessed within a lock.
</devremarks>
</member>
<member name="M:Microsoft.VisualStudio.Threading.AsyncAutoResetEvent.#ctor">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.Threading.AsyncAutoResetEvent" /> class
that does not inline awaiters.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Threading.AsyncAutoResetEvent.#ctor(System.Boolean)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.Threading.AsyncAutoResetEvent" /> class.
</summary>
<param name="allowInliningAwaiters">
A value indicating whether to complete the task synchronously in the <see cref="M:Microsoft.VisualStudio.Threading.AsyncAutoResetEvent.Set" /> method,
as opposed to asynchronously. <c>false</c> better simulates the behavior of the
<see cref="T:System.Threading.AutoResetEvent" /> class, but <c>true</c> can result in slightly better performance.
</param>
</member>
<member name="M:Microsoft.VisualStudio.Threading.AsyncAutoResetEvent.WaitAsync">
<summary>
Returns an awaitable that may be used to asynchronously acquire the next signal.
</summary>
<returns>An awaitable.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Threading.AsyncAutoResetEvent.WaitAsync(System.Threading.CancellationToken)">
<summary>
Returns an awaitable that may be used to asynchronously acquire the next signal.
</summary>
<param name="cancellationToken">A token whose cancellation removes the caller from the queue of those waiting for the event.</param>
<returns>An awaitable.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Threading.AsyncAutoResetEvent.Set">
<summary>
Unblocks one waiter or sets the signal if no waiters are present so the next waiter may proceed immediately.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Threading.AsyncAutoResetEvent.OnCancellationRequest(System.Object)">
<summary>
Responds to cancellation requests by removing the request from the waiter queue.
</summary>
<param name="state">The <see cref="T:Microsoft.VisualStudio.Threading.AsyncAutoResetEvent.WaiterCompletionSource" /> passed in to the <see cref="M:System.Threading.CancellationToken.Register(System.Action{System.Object},System.Object)" /> method.</param>
</member>
<member name="T:Microsoft.VisualStudio.Threading.AsyncAutoResetEvent.WaiterCompletionSource">
<summary>
Tracks someone waiting for a signal from the event.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Threading.AsyncAutoResetEvent.WaiterCompletionSource.#ctor(Microsoft.VisualStudio.Threading.AsyncAutoResetEvent,System.Boolean,System.Threading.CancellationToken)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.Threading.AsyncAutoResetEvent.WaiterCompletionSource" /> class.
</summary>
<param name="owner">The event that is initializing this value.</param>
<param name="allowInliningContinuations"><c>true</c> to allow continuations to be inlined upon the completer's callstack.</param>
<param name="cancellationToken">The cancellation token associated with the waiter.</param>
</member>
<member name="P:Microsoft.VisualStudio.Threading.AsyncAutoResetEvent.WaiterCompletionSource.CancellationToken">
<summary>
Gets the <see cref="P:Microsoft.VisualStudio.Threading.AsyncAutoResetEvent.WaiterCompletionSource.CancellationToken" /> provided by the waiter.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Threading.AsyncAutoResetEvent.WaiterCompletionSource.Registration">
<summary>
Gets the registration to dispose of when the waiter receives their event.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Threading.AsyncBarrier">
<summary>
An asynchronous barrier that blocks the signaler until all other participants have signaled.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Threading.AsyncBarrier.participantCount">
<summary>
The number of participants being synchronized.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Threading.AsyncBarrier.waiters">
<summary>
The set of participants who have reached the barrier, with their awaiters that can resume those participants.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Threading.AsyncBarrier.#ctor(System.Int32)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.Threading.AsyncBarrier" /> class.
</summary>
<param name="participants">The number of participants.</param>
</member>
<member name="M:Microsoft.VisualStudio.Threading.AsyncBarrier.SignalAndWait">
<summary>
Signals that a participant is ready, and returns a Task
that completes when all other participants have also signaled ready.
</summary>
<returns>A Task, which will complete (or may already be completed) when the last participant calls this method.</returns>
</member>
<member name="T:Microsoft.VisualStudio.Threading.AsyncCountdownEvent">
<summary>
An asynchronous style countdown event.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Threading.AsyncCountdownEvent.manualEvent">
<summary>
The manual reset event we use to signal all awaiters.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Threading.AsyncCountdownEvent.remainingCount">
<summary>
The remaining number of signals required before we can unblock waiters.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Threading.AsyncCountdownEvent.#ctor(System.Int32)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.Threading.AsyncCountdownEvent" /> class.
</summary>
<param name="initialCount">The number of signals required to unblock awaiters.</param>
</member>
<member name="M:Microsoft.VisualStudio.Threading.AsyncCountdownEvent.WaitAsync">
<summary>
Returns an awaitable that executes the continuation when the countdown reaches zero.
</summary>
<returns>An awaitable.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Threading.AsyncCountdownEvent.SignalAsync">
<summary>
Decrements the counter by one.
</summary>
<returns>
A task that completes when the signal has been set if this call causes the count to reach zero.
If the count is not zero, a completed task is returned.
</returns>
<remarks>
<para>
On .NET versions prior to 4.6:
This method may return before the signal set has propagated.
The returned task completes when the signal has definitely been set.
</para>
<para>
On .NET 4.6 and later:
This method is not asynchronous. The returned Task is always completed.
</para>
</remarks>
</member>
<member name="M:Microsoft.VisualStudio.Threading.AsyncCountdownEvent.Signal">
<summary>
Decrements the counter by one.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Threading.AsyncCountdownEvent.SignalAndWaitAsync">
<summary>
Decrements the counter by one and returns an awaitable that executes the continuation when the countdown reaches zero.
</summary>
<returns>An awaitable.</returns>
</member>
<member name="T:Microsoft.VisualStudio.Threading.AsyncEventHandler">
<summary>
An asynchronous event handler.
</summary>
<param name="sender">The sender of the event.</param>
<param name="args">Event arguments.</param>
<returns>A task whose completion signals handling is finished.</returns>
</member>
<member name="T:Microsoft.VisualStudio.Threading.AsyncEventHandler`1">
<summary>
An asynchronous event handler.
</summary>
<typeparam name="TEventArgs">The type of event arguments.</typeparam>
<param name="sender">The sender of the event.</param>
<param name="args">Event arguments.</param>
<returns>A task whose completion signals handling is finished.</returns>
</member>
<member name="T:Microsoft.VisualStudio.Threading.AsyncLazyInitializer">
<summary>
Lazily executes a delegate that has some side effect (typically initializing something)
such that the delegate runs at most once.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Threading.AsyncLazyInitializer.lazy">
<summary>
The lazy instance we use internally for the bulk of the behavior we want.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Threading.AsyncLazyInitializer.#ctor(System.Func{System.Threading.Tasks.Task},Microsoft.VisualStudio.Threading.JoinableTaskFactory)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.Threading.AsyncLazyInitializer" /> class.
</summary>
<param name="action">The action to perform at most once, that has some desirable side-effect.</param>
<param name="joinableTaskFactory">The factory to use when invoking the <paramref name="action" /> in <see cref="M:Microsoft.VisualStudio.Threading.AsyncLazyInitializer.InitializeAsync(System.Threading.CancellationToken)" /> to avoid deadlocks when the main thread is required by the <paramref name="action" />.</param>
</member>
<member name="P:Microsoft.VisualStudio.Threading.AsyncLazyInitializer.IsCompleted">
<summary>
Gets a value indicating whether the action has executed completely, regardless of whether it threw an exception.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Threading.AsyncLazyInitializer.IsCompletedSuccessfully">
<summary>
Gets a value indicating whether the action has executed completely without throwing an exception.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Threading.AsyncLazyInitializer.Initialize(System.Threading.CancellationToken)">
<summary>
Executes the action given in the constructor if it has not yet been executed,
or waits for it to complete if in progress from a prior call.
</summary>
<exception cref="T:System.Exception">Any exception thrown by the action is rethrown here.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Threading.AsyncLazyInitializer.InitializeAsync(System.Threading.CancellationToken)">
<summary>
Executes the action given in the constructor if it has not yet been executed,
or waits for it to complete if in progress from a prior call.
</summary>
<returns>A task that tracks completion of the action.</returns>
<exception cref="T:System.Exception">Any exception thrown by the action is rethrown here.</exception>
</member>
<member name="T:Microsoft.VisualStudio.Threading.AsyncLazy`1">
<summary>
A thread-safe, lazily and asynchronously evaluated value factory.
</summary>
<typeparam name="T">The type of value generated by the value factory.</typeparam>
</member>
<member name="F:Microsoft.VisualStudio.Threading.AsyncLazy`1.RecursiveCheckSentinel">
<summary>
The value set to the <see cref="F:Microsoft.VisualStudio.Threading.AsyncLazy`1.recursiveFactoryCheck" /> field
while the value factory is executing.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Threading.AsyncLazy`1.syncObject">
<summary>
The object to lock to provide thread-safety.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Threading.AsyncLazy`1.recursiveFactoryCheck">
<summary>
The unique instance identifier.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Threading.AsyncLazy`1.valueFactory">
<summary>
The function to invoke to produce the task.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Threading.AsyncLazy`1.jobFactory">
<summary>
The async pump to Join on calls to <see cref="M:Microsoft.VisualStudio.Threading.AsyncLazy`1.GetValueAsync(System.Threading.CancellationToken)" />.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Threading.AsyncLazy`1.value">
<summary>
The result of the value factory.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Threading.AsyncLazy`1.joinableTask">
<summary>
A joinable task whose result is the value to be cached.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Threading.AsyncLazy`1.#ctor(System.Func{System.Threading.Tasks.Task{`0}},Microsoft.VisualStudio.Threading.JoinableTaskFactory)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.Threading.AsyncLazy`1" /> class.
</summary>
<param name="valueFactory">The async function that produces the value. To be invoked at most once.</param>
<param name="joinableTaskFactory">The factory to use when invoking the value factory in <see cref="M:Microsoft.VisualStudio.Threading.AsyncLazy`1.GetValueAsync(System.Threading.CancellationToken)" /> to avoid deadlocks when the main thread is required by the value factory.</param>
</member>
<member name="P:Microsoft.VisualStudio.Threading.AsyncLazy`1.IsValueCreated">
<summary>
Gets a value indicating whether the value factory has been invoked.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Threading.AsyncLazy`1.IsValueFactoryCompleted">
<summary>
Gets a value indicating whether the value factory has been invoked and has run to completion.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Threading.AsyncLazy`1.GetValueAsync">
<summary>
Gets the task that produces or has produced the value.
</summary>
<returns>A task whose result is the lazily constructed value.</returns>
<exception cref="T:System.InvalidOperationException">
Thrown when the value factory calls <see cref="M:Microsoft.VisualStudio.Threading.AsyncLazy`1.GetValueAsync" /> on this instance.
</exception>
</member>
<member name="M:Microsoft.VisualStudio.Threading.AsyncLazy`1.GetValueAsync(System.Threading.CancellationToken)">
<summary>
Gets the task that produces or has produced the value.
</summary>
<param name="cancellationToken">
A token whose cancellation indicates that the caller no longer is interested in the result.
Note that this will not cancel the value factory (since other callers may exist).
But this token will result in an expediant cancellation of the returned Task,
and a dis-joining of any <see cref="T:Microsoft.VisualStudio.Threading.JoinableTask" /> that may have occurred as a result of this call.
</param>
<returns>A task whose result is the lazily constructed value.</returns>
<exception cref="T:System.InvalidOperationException">
Thrown when the value factory calls <see cref="M:Microsoft.VisualStudio.Threading.AsyncLazy`1.GetValueAsync" /> on this instance.
</exception>
</member>
<member name="M:Microsoft.VisualStudio.Threading.AsyncLazy`1.GetValue">
<summary>
Gets the lazily computed value.
</summary>
<returns>The lazily constructed value.</returns>
<exception cref="T:System.InvalidOperationException">
Thrown when the value factory calls <see cref="M:Microsoft.VisualStudio.Threading.AsyncLazy`1.GetValueAsync" /> on this instance.
</exception>
</member>
<member name="M:Microsoft.VisualStudio.Threading.AsyncLazy`1.GetValue(System.Threading.CancellationToken)">
<summary>
Gets the lazily computed value.
</summary>
<param name="cancellationToken">
A token whose cancellation indicates that the caller no longer is interested in the result.
Note that this will not cancel the value factory (since other callers may exist).
But when this token is canceled, the caller will experience an <see cref="T:System.OperationCanceledException" />
immediately and a dis-joining of any <see cref="T:Microsoft.VisualStudio.Threading.JoinableTask" /> that may have occurred as a result of this call.
</param>
<returns>The lazily constructed value.</returns>
<exception cref="T:System.InvalidOperationException">
Thrown when the value factory calls <see cref="M:Microsoft.VisualStudio.Threading.AsyncLazy`1.GetValueAsync" /> on this instance.
</exception>
<exception cref="T:System.OperationCanceledException">Thrown when <paramref name="cancellationToken" /> is canceled before the value is computed.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Threading.AsyncLazy`1.ToString">
<summary>
Renders a string describing an uncreated value, or the string representation of the created value.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Threading.AsyncLocal`1">
<summary>
Stores references such that they are available for retrieval
in the same call context.
</summary>
<typeparam name="T">The type of value to store.</typeparam>
</member>
<member name="F:Microsoft.VisualStudio.Threading.AsyncLocal`1.asyncLocal">
<summary>
The framework version specific instance of AsyncLocal to use.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Threading.AsyncLocal`1.#ctor">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.Threading.AsyncLocal`1" /> class.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Threading.AsyncLocal`1.Value">
<summary>
Gets or sets the value to associate with the current CallContext.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Threading.AsyncManualResetEvent">
<summary>
A flavor of <see cref="T:System.Threading.ManualResetEvent" /> that can be asynchronously awaited on.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Threading.AsyncManualResetEvent.allowInliningAwaiters">
<summary>
Whether the task completion source should allow executing continuations synchronously.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Threading.AsyncManualResetEvent.syncObject">
<summary>
The object to lock when accessing fields.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Threading.AsyncManualResetEvent.taskCompletionSource">
<summary>
The source of the task to return from <see cref="M:Microsoft.VisualStudio.Threading.AsyncManualResetEvent.WaitAsync" />.
</summary>
<devremarks>
This should not need the volatile modifier because it is
always accessed within a lock.
</devremarks>
</member>
<member name="F:Microsoft.VisualStudio.Threading.AsyncManualResetEvent.isSet">
<summary>
A flag indicating whether the event is signaled.
When this is set to true, it's possible that
<see cref="F:Microsoft.VisualStudio.Threading.AsyncManualResetEvent.taskCompletionSource" />.Task.IsCompleted is still false
if the completion has been scheduled asynchronously.
Thus, this field should be the definitive answer as to whether
the event is signaled because it is synchronously updated.
</summary>
<devremarks>
This should not need the volatile modifier because it is
always accessed within a lock.
</devremarks>
</member>
<member name="M:Microsoft.VisualStudio.Threading.AsyncManualResetEvent.#ctor(System.Boolean,System.Boolean)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.Threading.AsyncManualResetEvent" /> class.
</summary>
<param name="initialState">A value indicating whether the event should be initially signaled.</param>
<param name="allowInliningAwaiters">
A value indicating whether to allow <see cref="M:Microsoft.VisualStudio.Threading.AsyncManualResetEvent.WaitAsync" /> callers' continuations to execute
on the thread that calls <see cref="M:Microsoft.VisualStudio.Threading.AsyncManualResetEvent.SetAsync" /> before the call returns.
<see cref="M:Microsoft.VisualStudio.Threading.AsyncManualResetEvent.SetAsync" /> callers should not hold private locks if this value is <c>true</c> to avoid deadlocks.
When <c>false</c>, the task returned from <see cref="M:Microsoft.VisualStudio.Threading.AsyncManualResetEvent.WaitAsync" /> may not have fully transitioned to
its completed state by the time <see cref="M:Microsoft.VisualStudio.Threading.AsyncManualResetEvent.SetAsync" /> returns to its caller.
</param>
</member>
<member name="P:Microsoft.VisualStudio.Threading.AsyncManualResetEvent.IsSet">
<summary>
Gets a value indicating whether the event is currently in a signaled state.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Threading.AsyncManualResetEvent.WaitAsync">
<summary>
Returns a task that will be completed when this event is set.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Threading.AsyncManualResetEvent.WaitAsync(System.Threading.CancellationToken)">
<summary>
Returns a task that will be completed when this event is set.
</summary>
<param name="cancellationToken">A cancellation token.</param>
<returns>A task that completes when the event is set, or cancels with the <paramref name="cancellationToken" />.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Threading.AsyncManualResetEvent.SetAsync">
<summary>
Sets this event to unblock callers of <see cref="M:Microsoft.VisualStudio.Threading.AsyncManualResetEvent.WaitAsync" />.
</summary>
<returns>A task that completes when the signal has been set.</returns>
<remarks>
<para>
On .NET versions prior to 4.6:
This method may return before the signal set has propagated (so <see cref="P:Microsoft.VisualStudio.Threading.AsyncManualResetEvent.IsSet" /> may return <c>false</c> for a bit more if called immediately).
The returned task completes when the signal has definitely been set.
</para>
<para>
On .NET 4.6 and later:
This method is not asynchronous. The returned Task is always completed.
</para>
</remarks>
</member>
<member name="M:Microsoft.VisualStudio.Threading.AsyncManualResetEvent.Set">
<summary>
Sets this event to unblock callers of <see cref="M:Microsoft.VisualStudio.Threading.AsyncManualResetEvent.WaitAsync" />.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Threading.AsyncManualResetEvent.Reset">
<summary>
Resets this event to a state that will block callers of <see cref="M:Microsoft.VisualStudio.Threading.AsyncManualResetEvent.WaitAsync" />.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Threading.AsyncManualResetEvent.PulseAllAsync">
<summary>
Sets and immediately resets this event, allowing all current waiters to unblock.
</summary>
<returns>A task that completes when the signal has been set.</returns>
<remarks>
<para>
On .NET versions prior to 4.6:
This method may return before the signal set has propagated (so <see cref="P:Microsoft.VisualStudio.Threading.AsyncManualResetEvent.IsSet" /> may return <c>false</c> for a bit more if called immediately).
The returned task completes when the signal has definitely been set.
</para>
<para>
On .NET 4.6 and later:
This method is not asynchronous. The returned Task is always completed.
</para>
</remarks>
</member>
<member name="M:Microsoft.VisualStudio.Threading.AsyncManualResetEvent.PulseAll">
<summary>
Sets and immediately resets this event, allowing all current waiters to unblock.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Threading.AsyncManualResetEvent.GetAwaiter">
<summary>
Gets an awaiter that completes when this event is signaled.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Threading.AsyncManualResetEvent.CreateTaskSource">
<summary>
Creates a new TaskCompletionSource to represent an unset event.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Threading.AsyncQueue`1">
<summary>
A thread-safe, asynchronously dequeuable queue.
</summary>
<typeparam name="T">The type of values kept by the queue.</typeparam>
</member>
<member name="F:Microsoft.VisualStudio.Threading.AsyncQueue`1.completedSource">
<summary>
The source of the task returned by <see cref="P:Microsoft.VisualStudio.Threading.AsyncQueue`1.Completion" />. Lazily constructed.
</summary>
<remarks>
Volatile to allow the check-lock-check pattern in <see cref="P:Microsoft.VisualStudio.Threading.AsyncQueue`1.Completion" /> to be reliable,
in the event that within the lock, one thread initializes the value and assigns the field
and the weak memory model allows the assignment prior to the initialization. Another thread
outside the lock might observe the non-null field and start accessing the Task property
before it is actually initialized. Volatile prevents CPU reordering of commands around
the assignment (or read) of this field.
</remarks>
</member>
<member name="F:Microsoft.VisualStudio.Threading.AsyncQueue`1.queueElements">
<summary>
The internal queue of elements. Lazily constructed.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Threading.AsyncQueue`1.dequeuingWaiters">
<summary>
The internal queue of <see cref="M:Microsoft.VisualStudio.Threading.AsyncQueue`1.DequeueAsync(System.Threading.CancellationToken)" /> waiters. Lazily constructed.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Threading.AsyncQueue`1.completeSignaled">
<summary>
A value indicating whether <see cref="M:Microsoft.VisualStudio.Threading.AsyncQueue`1.Complete" /> has been called.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Threading.AsyncQueue`1.onCompletedInvoked">
<summary>
A flag indicating whether the <see cref="M:Microsoft.VisualStudio.Threading.AsyncQueue`1.OnCompleted" /> has been invoked.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Threading.AsyncQueue`1.#ctor">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.Threading.AsyncQueue`1" /> class.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Threading.AsyncQueue`1.IsEmpty">
<summary>
Gets a value indicating whether the queue is currently empty.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Threading.AsyncQueue`1.Count">
<summary>
Gets the number of elements currently in the queue.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Threading.AsyncQueue`1.IsCompleted">
<summary>
Gets a value indicating whether the queue has completed.
</summary>
<remarks>
This is arguably redundant with <see cref="P:Microsoft.VisualStudio.Threading.AsyncQueue`1.Completion" />.IsCompleted, but this property
won't cause the lazy instantiation of the Task that <see cref="P:Microsoft.VisualStudio.Threading.AsyncQueue`1.Completion" /> may if there
is no other reason for the Task to exist.
</remarks>
</member>
<member name="P:Microsoft.VisualStudio.Threading.AsyncQueue`1.Completion">
<summary>
Gets a task that transitions to a completed state when <see cref="M:Microsoft.VisualStudio.Threading.AsyncQueue`1.Complete" /> is called.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Threading.AsyncQueue`1.SyncRoot">
<summary>
Gets the synchronization object used by this queue.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Threading.AsyncQueue`1.InitialCapacity">
<summary>
Gets the initial capacity for the queue.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Threading.AsyncQueue`1.Complete">
<summary>
Signals that no further elements will be enqueued.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Threading.AsyncQueue`1.Enqueue(`0)">
<summary>
Adds an element to the tail of the queue.
</summary>
<param name="value">The value to add.</param>
</member>
<member name="M:Microsoft.VisualStudio.Threading.AsyncQueue`1.TryEnqueue(`0)">
<summary>
Adds an element to the tail of the queue if it has not yet completed.
</summary>
<param name="value">The value to add.</param>
<returns><c>true</c> if the value was added to the queue; <c>false</c> if the queue is already completed.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Threading.AsyncQueue`1.TryPeek(`0@)">
<summary>
Gets the value at the head of the queue without removing it from the queue, if it is non-empty.
</summary>
<param name="value">Receives the value at the head of the queue; or the default value for the element type if the queue is empty.</param>
<returns><c>true</c> if the queue was non-empty; <c>false</c> otherwise.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Threading.AsyncQueue`1.Peek">
<summary>
Gets the value at the head of the queue without removing it from the queue.
</summary>
<exception cref="T:System.InvalidOperationException">Thrown if the queue is empty.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Threading.AsyncQueue`1.DequeueAsync(System.Threading.CancellationToken)">
<summary>
Gets a task whose result is the element at the head of the queue.
</summary>
<param name="cancellationToken">
A token whose cancellation signals lost interest in the item.
Cancelling this token does *not* guarantee that the task will be canceled
before it is assigned a resulting element from the head of the queue.
It is the responsibility of the caller to ensure after cancellation that
either the task is canceled, or it has a result which the caller is responsible
for then handling.
</param>
<returns>A task whose result is the head element.</returns>
<exception cref="T:System.OperationCanceledException">
Thrown when this instance has an empty queue and <see cref="M:Microsoft.VisualStudio.Threading.AsyncQueue`1.Complete" /> has been called.
Also thrown when <paramref name="cancellationToken" /> is canceled before a work item can be dequeued.
</exception>
</member>
<member name="M:Microsoft.VisualStudio.Threading.AsyncQueue`1.TryDequeue(`0@)">
<summary>
Immediately dequeues the element from the head of the queue if one is available,
otherwise returns without an element.
</summary>
<param name="value">Receives the element from the head of the queue; or <c>default(T)</c> if the queue is empty.</param>
<returns><c>true</c> if an element was dequeued; <c>false</c> if the queue was empty.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Threading.AsyncQueue`1.Microsoft#VisualStudio#Threading#ThreadingTools#ICancellationNotification#OnCanceled">
<inheritdoc />
</member>
<member name="M:Microsoft.VisualStudio.Threading.AsyncQueue`1.ToArray">
<summary>
Returns a copy of this queue as an array.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Threading.AsyncQueue`1.TryDequeue(System.Predicate{`0},`0@)">
<summary>
Immediately dequeues the element from the head of the queue if one is available
that satisfies the specified check;
otherwise returns without an element.
</summary>
<param name="valueCheck">The test on the head element that must succeed to dequeue.</param>
<param name="value">Receives the element from the head of the queue; or <c>default(T)</c> if the queue is empty.</param>
<returns><c>true</c> if an element was dequeued; <c>false</c> if the queue was empty.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Threading.AsyncQueue`1.OnEnqueued(`0,System.Boolean)">
<summary>
Invoked when a value is enqueued.
</summary>
<param name="value">The enqueued value.</param>
<param name="alreadyDispatched">
<c>true</c> if the item will skip the queue because a dequeuer was already waiting for an item;
<c>false</c> if the item was actually added to the queue.
</param>
</member>
<member name="M:Microsoft.VisualStudio.Threading.AsyncQueue`1.OnDequeued(`0)">
<summary>
Invoked when a value is dequeued.
</summary>
<param name="value">The dequeued value.</param>
</member>
<member name="M:Microsoft.VisualStudio.Threading.AsyncQueue`1.OnCompleted">
<summary>
Invoked when the queue is completed.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Threading.AsyncQueue`1.TryDequeueInternal(System.Predicate{`0},`0@)">
<summary>
Immediately dequeues the element from the head of the queue if one is available,
otherwise returns without an element.
</summary>
<param name="valueCheck">The test on the head element that must succeed to dequeue.</param>
<param name="value">Receives the element from the head of the queue; or <c>default(T)</c> if the queue is empty.</param>
<returns><c>true</c> if an element was dequeued; <c>false</c> if the queue was empty.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Threading.AsyncQueue`1.CompleteIfNecessary">
<summary>
Transitions this queue to a completed state if signaled and the queue is empty.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Threading.AsyncQueue`1.FreeCanceledDequeuers">
<summary>
Clears as many canceled dequeuers as we can from the head of the waiting queue.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Threading.AsyncReaderWriterLock">
<summary>
A non-blocking lock that allows concurrent access, exclusive access, or concurrent with upgradeability to exclusive access.
</summary>
<remarks>
We have to use a custom awaitable rather than simply returning Task{LockReleaser} because
we have to set CallContext data in the context of the person receiving the lock,
which requires that we get to execute code at the start of the continuation (whether we yield or not).
</remarks>
<devnotes>
Considering this class to be a state machine, the states are:
<code>
<![CDATA[
-------------
| | <-----> READERS
| IDLE | <-----> UPGRADEABLE READER + READERS -----> UPGRADED WRITER --\
| NO LOCKS | ^ |
| | |--- RE-ENTER CONCURRENCY PREP <--/
| | <-----> WRITER
-------------
]]>
</code>
</devnotes>
</member>
<member name="P:Microsoft.VisualStudio.Threading.AsyncReaderWriterLock.NoMessagePumpSynchronizationContext">
<summary>
Gets a <see cref="T:System.Threading.SynchronizationContext" /> which, when applied,
suppresses any message pump that may run during synchronous blocks
of the calling thread.
</summary>
<remarks>
The default implementation of this property is effective
in builds of this assembly that target the .NET Framework.
But on builds that target the portable profile, it should be
overridden to provide an effective platform-specific solution.
</remarks>
</member>
<member name="M:Microsoft.VisualStudio.Threading.AsyncReaderWriterLock.Microsoft#VisualStudio#Threading#IHangReportContributor#GetHangReport">
<summary>
Contributes data for a hang report.
</summary>
<returns>The hang report contribution. Null values should be ignored.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Threading.AsyncReaderWriterLock.GetHangReport">
<summary>
Contributes data for a hang report.
</summary>
<returns>The hang report contribution. Null values should be ignored.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Threading.AsyncReaderWriterLock.CreateAwaiterNode(Microsoft.VisualStudio.Threading.AsyncReaderWriterLock.Awaiter)">
<summary>
Appends details of a given collection of awaiters to the hang report.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Threading.AsyncReaderWriterLock.DefaultDeadlockCheckTimeout">
<summary>
A time delay to check whether pending writer lock and reader locks forms a deadlock.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Threading.AsyncReaderWriterLock.DefaultSynchronizationContext">
<summary>
The default SynchronizationContext to schedule work after issuing a lock.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Threading.AsyncReaderWriterLock.syncObject">
<summary>
The object to acquire a Monitor-style lock on for all field access on this instance.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Threading.AsyncReaderWriterLock.joinableTaskContext">
<summary>
A JoinableTaskContext used to resolve dependencies between read locks to lead into deadlocks when there is a pending write lock.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Threading.AsyncReaderWriterLock.topAwaiter">
<summary>
A CallContext-local reference to the Awaiter that is on the top of the stack (most recently acquired).
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Threading.AsyncReaderWriterLock.issuedReadLocks">
<summary>
The set of read locks that are issued and active.
</summary>
<remarks>
Many readers are allowed concurrently. Also, readers may re-enter read locks (recursively)
each of which gets an element in this set.
</remarks>
</member>
<member name="F:Microsoft.VisualStudio.Threading.AsyncReaderWriterLock.issuedUpgradeableReadLocks">
<summary>
The set of upgradeable read locks that are issued and active.
</summary>
<remarks>
Although only one upgradeable read lock can be held at a time, this set may have more
than one element because that one lock holder may enter the lock it already possesses
multiple times.
</remarks>
</member>
<member name="F:Microsoft.VisualStudio.Threading.AsyncReaderWriterLock.issuedWriteLocks">
<summary>
The set of write locks that are issued and active.
</summary>
<remarks>
Although only one write lock can be held at a time, this set may have more
than one element because that one lock holder may enter the lock it already possesses
multiple times.
Although this lock is mutually exclusive, there *may* be elements in the
<see cref="F:Microsoft.VisualStudio.Threading.AsyncReaderWriterLock.issuedUpgradeableReadLocks" /> set if the write lock was upgraded from a reader.
Also note that some elements in this may themselves be upgradeable readers if they have
the <see cref="F:Microsoft.VisualStudio.Threading.AsyncReaderWriterLock.LockFlags.StickyWrite" /> flag.
</remarks>
</member>
<member name="F:Microsoft.VisualStudio.Threading.AsyncReaderWriterLock.waitingReaders">
<summary>
A queue of readers waiting to obtain the concurrent read lock.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Threading.AsyncReaderWriterLock.waitingUpgradeableReaders">
<summary>
A queue of upgradeable readers waiting to obtain a lock.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Threading.AsyncReaderWriterLock.waitingWriters">
<summary>
A queue of writers waiting to obtain an exclusive lock.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Threading.AsyncReaderWriterLock.completionSource">
<summary>
The source of the <see cref="P:Microsoft.VisualStudio.Threading.AsyncReaderWriterLock.Completion" /> task, which transitions to completed after
the <see cref="M:Microsoft.VisualStudio.Threading.AsyncReaderWriterLock.Complete" /> method is called and all issued locks have been released.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Threading.AsyncReaderWriterLock.beforeWriteReleasedCallbacks">
<summary>
The queue of callbacks to invoke when the currently held write lock is totally released.
</summary>
<remarks>
If the write lock is released to an upgradeable read lock, these callbacks are fired synchronously
with respect to the writer who is releasing the lock. Otherwise, the callbacks are invoked
asynchronously with respect to the releasing thread.
</remarks>
</member>
<member name="F:Microsoft.VisualStudio.Threading.AsyncReaderWriterLock.captureDiagnostics">
<summary>
A value indicating whether extra resources should be spent to collect diagnostic information
that may be useful in deadlock investigations.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Threading.AsyncReaderWriterLock.reenterConcurrencyPrepRunning">
<summary>
A flag indicating whether we're currently running code to prepare for re-entering concurrency mode
after releasing an exclusive lock. The Awaiter being released is the non-null value.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Threading.AsyncReaderWriterLock.completeInvoked">
<summary>
A flag indicating that the <see cref="M:Microsoft.VisualStudio.Threading.AsyncReaderWriterLock.Complete" /> method has been called, indicating that no
new top-level lock requests should be serviced.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Threading.AsyncReaderWriterLock.etw">
<summary>
A helper class to produce ETW trace events.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Threading.AsyncReaderWriterLock.pendingWriterLockDeadlockCheckTimer">
<summary>
A timer to recheck potential deadlock caused by pending writer locks.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Threading.AsyncReaderWriterLock.#ctor">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.Threading.AsyncReaderWriterLock" /> class.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Threading.AsyncReaderWriterLock.#ctor(System.Boolean)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.Threading.AsyncReaderWriterLock" /> class.
</summary>
<param name="captureDiagnostics">
<c>true</c> to spend additional resources capturing diagnostic details that can be used
to analyze deadlocks or other issues.</param>
</member>
<member name="M:Microsoft.VisualStudio.Threading.AsyncReaderWriterLock.#ctor(Microsoft.VisualStudio.Threading.JoinableTaskContext,System.Boolean)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.Threading.AsyncReaderWriterLock" /> class.
</summary>
<param name="joinableTaskContext">
A JoinableTaskContext to help resolve deadlocks caused by interdependency between top read lock tasks when there is a pending write lock blocking one of them.
</param>
<param name="captureDiagnostics">
<c>true</c> to spend additional resources capturing diagnostic details that can be used
to analyze deadlocks or other issues.</param>
</member>
<member name="T:Microsoft.VisualStudio.Threading.AsyncReaderWriterLock.LockFlags">
<summary>
Flags that modify default lock behavior.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Threading.AsyncReaderWriterLock.LockFlags.None">
<summary>
The default behavior applies.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Threading.AsyncReaderWriterLock.LockFlags.StickyWrite">
<summary>
Causes an upgradeable reader to remain in an upgraded-write state once upgraded,
even after the nested write lock has been released.
</summary>
<remarks>
This is useful when you have a batch of possible write operations to apply, which
may or may not actually apply in the end, but if any of them change anything,
all of their changes should be seen atomically (within a single write lock).
This approach is preferable to simply acquiring a write lock around the batch of
potential changes because it doesn't defeat concurrent readers until it knows there
is a change to actually make.
</remarks>
</member>
<member name="T:Microsoft.VisualStudio.Threading.AsyncReaderWriterLock.LockKind">
<summary>
An enumeration of the kinds of locks supported by this class.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Threading.AsyncReaderWriterLock.LockKind.Read">
<summary>
A lock that supports concurrently executing threads that hold this same lock type.
Holders of this lock may not obtain a <see cref="F:Microsoft.VisualStudio.Threading.AsyncReaderWriterLock.LockKind.Write" /> lock without first
releasing all their <see cref="F:Microsoft.VisualStudio.Threading.AsyncReaderWriterLock.LockKind.Read" /> locks.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Threading.AsyncReaderWriterLock.LockKind.UpgradeableRead">
<summary>
A lock that may run concurrently with standard readers, but is exclusive of any other
upgradeable readers. Holders of this lock are allowed to obtain a write lock while
holding this lock to guarantee continuity of state between what they read and what they write.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Threading.AsyncReaderWriterLock.LockKind.Write">
<summary>
A mutually exclusive lock.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Threading.AsyncReaderWriterLock.IsAnyLockHeld">
<summary>
Gets a value indicating whether any kind of lock is held by the caller and can
be immediately used given the caller's context.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Threading.AsyncReaderWriterLock.IsAnyPassiveLockHeld">
<summary>
Gets a value indicating whether any kind of lock is held by the caller without regard
to the lock compatibility of the caller's context.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Threading.AsyncReaderWriterLock.IsReadLockHeld">
<summary>
Gets a value indicating whether the caller holds a read lock.
</summary>
<remarks>
This property returns <c>false</c> if any other lock type is held, unless
within that alternate lock type this lock is also nested.
</remarks>
</member>
<member name="P:Microsoft.VisualStudio.Threading.AsyncReaderWriterLock.IsPassiveReadLockHeld">
<summary>
Gets a value indicating whether a read lock is held by the caller without regard
to the lock compatibility of the caller's context.
</summary>
<remarks>
This property returns <c>false</c> if any other lock type is held, unless
within that alternate lock type this lock is also nested.
</remarks>
</member>
<member name="P:Microsoft.VisualStudio.Threading.AsyncReaderWriterLock.IsUpgradeableReadLockHeld">
<summary>
Gets a value indicating whether the caller holds an upgradeable read lock.
</summary>
<remarks>
This property returns <c>false</c> if any other lock type is held, unless
within that alternate lock type this lock is also nested.
</remarks>
</member>
<member name="P:Microsoft.VisualStudio.Threading.AsyncReaderWriterLock.IsPassiveUpgradeableReadLockHeld">
<summary>
Gets a value indicating whether an upgradeable read lock is held by the caller without regard
to the lock compatibility of the caller's context.
</summary>
<remarks>
This property returns <c>false</c> if any other lock type is held, unless
within that alternate lock type this lock is also nested.
</remarks>
</member>
<member name="P:Microsoft.VisualStudio.Threading.AsyncReaderWriterLock.IsWriteLockHeld">
<summary>
Gets a value indicating whether the caller holds a write lock.
</summary>
<remarks>
This property returns <c>false</c> if any other lock type is held, unless