| Public and private keys primitives, overflows and, 115
prioritizing threads, 684, 754
by application, 687
classes for, 685
High priority, 685 Idle priority class, 685 Idle priority level, 687 importance of, 688
mapping priority levels, 686 priority boosting, 774 process priority class, 686
raising and lowering priority, 687 Realtime class, 685
relative priority classes, 685 Time-Critical priority level, 687 for Windows Store apps, 687 zero page thread, 684, 686
PrioritizingTaskScheduler, 713 priority
inversion, 756
thread, 679
private assemblies, 67
strongly named, 79
private fields, 168, 228, 231
private keys. See public and private keys privately deployed assemblies, 61 private methods
partial methods as, 207 serialization and, 622
type constructors, 188 private thread locks, 797 problem signatures, 487
Process class, 688 processes
creating, expensive nature of, 675 creating, vs. creating threads, 675 defined, 670
example of, 558
isolation, 557
process priority class, 686 reducing, with managed code, 17 terminating, 477, 574
threads per, 674
wasteful, identifying, 675
processor architecture, loading assemblies for, 585
ProcessThread class, 688
productivity vs. reliability in error handling, 469 program order, 765
Program type, 43
prologue code, 102 properties
accessor accessiblity, 248
accessor methods, 231
automatically implemented, 231
backing fields, 230
behavior and, 248
compiler results, 244 confusion caused by, 232 C# support for, 231 declaring, 231
declaring, in anonymous types, 238
defined, 24, 152
defining, 230
defining intelligently, 232
example of, 229
generic accessor methods, 248 in metadata, 231
metadata on, 603
parameterful, 227, 242, 246
parameterless, 227
vs. public fields, 425
returning different values, 233 thread synchronization and, 233 in Tuple types, 241
Visual Studio debugger and, 234 when to use, 233
PropertyDef table, 39
PropertyInfo type, 603 public and private keys
for assemblies, 67. See also strongly, named assemblies
creating, 69
in CSP containers, 78 delayed signing, 76
in hardware devices, securing, 78 hashing to reduce space, 71
for publisher policy assemblies, 87
Public
public
constructors, defining, 195 fields, vs. properties, 425 methods, interfaces and, 299 types, 25, 154
publisher policy controls, 86 publisherPolicy elements, 85
publishing values, 808
Pulse method, 813
PulseAll method, 813 purpose of book, xxiii PutAsync method, 742
Q
qsort function, 391
quantums, 672
ending early, 673
queries, LINQ. See LINQ queries QueryMemoryResource notification, 519 question marks, in C# code, 443
queues, thread-safe, 813
QueueUserWorkItem method, 409, 693,
700, 724
R
raising events, in thread-safe way, 254 Rational type, 195
RCWs (Runtime Callable Wrappers), 644 Read method, 753
in I/O operations, 728
Read method (Volatile class), 765, 767, 768 read-only files, setting attribute for, 368 ReadAsync method, 729, 733, 742, 753
ReadBlockAsync method, 742
ReaderWriterLock class, 802
reader-writer locks, 801, 804
ReaderWriterLockSlim class, 800
ReadLineAsync method, 742
readonly fields, 177
defining, 178
ReadToEndAsync method, 742 real-time operating systems, 684
Realtime priority class, 685 Rectangles, constructing, 185 recursive locks, avoiding, 806 recursive thread locks, 786 ref keyword
overloading methods based on, 216 vs. out keyword, 215
ref parameter, 282
reference counting, 508
ReferenceEquals method, 140, 331
References, checking, 157 reference tables in metadata, 39 reference tracking, 508
reference type variables, setting to null, 288 reference types, 118, 320
arrays of, 373
classes as, 119
converting value types into, 125 example code, 121
examples of, 119
field layout, 123
generic, 269
null-coalescing operator and, 446 overlapping with value types, 124 performance issues, 119
as primary constraints, 287
ref keyword vs. out keyword, 215 serializing, 618
sharing code, 277
swapping, 218, 219
with type constructors, 188 vs. value types, 122
referencing assemblies, 70, 98
strongly named assemblies, 74 types, 80
reflection, 141, 148, 430 discovering type members, 599 exception handling and, 485 object model, discovering, 602 performance issues, 589
serialization and, 614
type discovery with, 590, 604 type safety and, 589
Serialization
reflection API for .NET Framework, 583 reflection members, generics and, 271 reflection methods, 432
Reflection namespace, 431, 588
reflection types, 588, 589
hierarchy of, 600
ReflectionOnlyGetType method, 591
ReflectionOnlyLoadFrom method, 587
ReflectionOnlyLoad method, 587
regional settings, 326 Register method
CancellationToken class, 699
CancellationTokenSource class, 698
RegisterForFullGCNotification method, 523
registering assemblies, 74
relational operators, nullable types and, 444 relative thread priority classes, 685 ReleaseMutex method, 785
ReliabilityContract attribute, 496 Reliability Monitor
problem signatures, 487
terminated applications, viewing in, 487 reliability vs. productivity in error handling, 469 Remove method, 260, 338, 403
RemoveAt method, 358
RemoveEventHandler method, 603
RemoveMemoryPressure method, 538
RemoveParticipant method, 805
Replace method, 338
ReportStatus method, 772
ResetAbort method, 579, 580
resolving types, 593
resource files, adding to assemblies, 53
resource leaks, 531
resources, accessing, 505
response files, 36
ignoring, 38
resurrected objects, 544
return types, discovering information on, 602 returning arrays, 382
reverse engineering, protecting against, 19 roots, 508
in garbage collection, 509 Run method, 745
Runtime binders, 148
handles, 608
Runtime Callable Wrappers (RCWs), 644 RuntimeWrappedException class, 458
S
safe places, 580
SafeHandle class, 527
derivation of, 528
SafeHandle namespace, 529, 530, 531
SafeWaitHandle class, 529
satellite assemblies, 59
sbyte type, 112
scalability, threads and, 674 scheduling tasks, 711
reader/writer semantics, 815
scheduling threads, 683, 684
sealed classes, 168
partial methods and, 205 secondary constraints, 288
SecureString class, 357, 358
decrypting objects, 360 FCL support for, 358
passing objects as a password, 358 secure strings, 357
security, class, 168
SecurityCritical attribute, 489, 695 security settings, thread pools and, 694 Semaphore class, 780, 784
semaphores, 784
vs. auto-reset events, 784
as primitive kernel-mode thread synchronization constructs, 778
SemaphoreSlim class, 794, 815
sequential queries, 717
serialization, 589
AddValue method and, 627 of application state, 616 assemblies and, 616
cloning with, 615
of collection objects, 622
Date: 2016-03-03; view: 865
|