Index of 4.0 Topics

* (star), 756

. (dot) operators, 871

access

code, 884

members, referent types, 871872

runtime, 883

thread-safe, 815

acronyms, 894895

adding event handlers, 846848

addresses, 862872

agents, execution, 881

AggregateException, 757764, 768

asynchronous Web requests, 779

parallel loop exception handling, 798800

algorithms

hill climbing, 798

mark-and-sweep-based, 882

work stealing, 798

allocating

data on call stacks, 868

virtual memory, 851

AllocExecutionBlock() method, 855

antecedent tasks, 753

APIs (application programming interfaces)

encapsulation, 859860

parameters, 192

APM (Asynchronous Programming Model), 908921

AppDomain, 762

applicable, 193

applications

domains, 887

instances, formatting single, 829830

Tic-Tac-Toe, 901905

virtual, 872

applying

APM patterns, 908910

lock keywords, 819821

SafeHandle class, 856857

StructLayoutAttribute, 853

Task.Factory.StartNew() method, 769

arguments, named, 191

arity, 460461

arrays, covariance, 488489

AsParallel() method, 584

assemblies

CLI, 887890

versioning, 889

assigning pointers, 866869

async keyword, 777781, 937942

asynchronous delegate invocation, 921924

asynchronous programming

high-latency operations, invoking, 772777

lambda expressions, 782783

methods, customizing, 783786

models, 908921

Task-based Asynchronous Pattern (TAP), 770794

task-based asynchrony, 848849

asynchronous tasks, 745764

atomic operation, 829

attributes, customizing, 893

automatically shimmed interfaces, 848

avoiding

deadlocks, 827828

locking, 822823, 828829

synchronization with MethodImplAttribute, 823

await keyword, 777781, 937942

background worker patterns, 928932

BCL (Base Class Library), 885, 892, 894

BeginGetResponse() method, 908

BeginX() method, 908

behaviors, dynamic objects, 716718

binding

dynamic objects, 719720

late, 893

methods, 714

runtime, XML elements, 719720

blocks, unsafe, 863, 864

Break() method, 803

breaking parallel loops, 803804

buffers, overrun, 883

bugs, runtime performance, 885886

C language pointers, declaring, 865

C++ language, 890

deterministic destruction, 882

pointers, declaring, 865

calculating pi, 794795

calling

APM methods, 915921

P/Invoke

APIs, 861

external functions, 858861

stacks, 868

Task.ContinueWith method, 752, 789

Cancel() method, 766

CancellationToken class, 764, 767

CancellationTokenSource class, 767

cancelling

parallel loops, 800

PLINQ queries, 807

tasks, 764770

CAS (code access security), 884

catch clause, 779

change() method, 942

checking types, 883

CIL (Common Intermediate Language), 876, 877, 894

CLI, 890

dynamic objects, 718719

machine code, compilation to, 879880

runtime, 881886

circumventing encapsulation, 883

classes

BCL, 892, 894

CancellationToken, 764, 767

CancellationTokenSource, 767

concurrent collections, 835837

CountdownEvent, 835

dynamic, 714724

FCL, 892, 895

IProducerConsumer-Collection<T>, 835

Monitor, thread synchronization, 817819

ParallelQuery<T>, 806

SafeHandle, 856857

Semaphore, 835

SemaphoreSlim, 835

STAThreadAttribute, 842843

System.AsyncCallback, 911913

System.Exception, 433

System.Lazy<T>, 420

System.Net.WebRequest, 908

System.Threading, 812

System.Threading.AutoReset-Event, semaphores, 834

System.Threading.Interlocked, 824826

System.Threading.ManualResetEvent, 831834

System.Threading.ManualResetEventSlim, 831834

System.Threading.Mutex, 829830

System.Threading.WaitHandle, 831

System.Timer, 937942

TaskCompletionSource<T>, 784

TaskScheduler, 788

Task<T>, 779

await keyword, 787788

polling, 749

ThreadLocal<T>, 838

ThreadStaticAttribute, 839

Tuple, 461

clauses, catch, 779

cleanup, resources (APM), 914

CLI (Common Language Infrastructure), 894

application domains, 887

assemblies, 887890

BCL, 892

CIL, 890

CLS, 891892

CTS, 891

implementing, 877878

infrastructure, 875877

installing, 897899

manifests, 887890

metadata, 892893

modules, 887890

CLR (Common Language Runtime), 881, 894

CLS (Common Language Specification), 877, 891892, 895

COBOL, 890

code

access security, 884

machine, 876, 879880

managed, 881

runtime performance, 885886

Tic-Tac-Toe, 901905

unsafe, 845846, 863864, 867, 872873

collections, concurrency, 835837

COM (Component Object Model)

DLL registration, 890

STAThreadAttribute class, 842843

commands, xcopy, 889

common namespaces, 159160

compilers, 878

installing, 897899

paths, configuring, 898

compiling

just-in-time compilation, 879

machine code, 879880

static compilation vs. dynamic programming, 720721

compression, 882

computers, guest, 872

concurrency, 835837

configuring

background worker patterns, 930931

compiler paths, 898

consoles, synchronization, 920921

Console.WriteLine() method, 871

context, synchronization, 788790

continuation, tasks, 789

ContinueWith() method, 753, 775, 919920

contravariance, enabling, 485488

control flow

asynchronous tasks, 751

await keyword, 792794

tasks, 780

conversions

CIL, 879

types, checking, 883

cooperative cancellation, 764

CountdownEvent class, 835

covariance

enabling, 483485

support, 488489

CPS (continuation passing style), 911913, 915

CPUs (central processing units), running LINQ queries in parallel, 584

Create() method, 461

CTS (Common Type System), 877, 891, 895

customizing

attributes, 893

dynamic objects, 721724

methods, asynchronous, 783786

synchronization contexts, 790

data

managed, 881

types

dynamic, 716

parameters, 850852

de-allocating objects, 882

deadlocks, 827828

declaring

external functions, 849850

fields as volatile, 823824

pointers, 864866

Decrement() method, 814, 821, 825

delegates

asynchronous delegate invocation, 921924

P/Invoke, 862

structural equality, 516517

synchronous, 747

System.Func/System.Action, 514530

unsafe code, executing via, 872873

deleting event handlers, 846848

deployment, xcopy, 889

dereferencing pointers, 869871

deterministic destruction, 882

development, 886

device drivers, 886

diagrams, CancellationToken class, 767

DirectoryCountLines() method, 191

dirty space, 882

disabling parallelism, 802

Dispose() method, tasks, 770

distribution, APM parameters, 911

DLL (Dynamic Link Library), COM registration, 890

domains, applications, 887

DoStuffAsync() method, 787

dot (.) operator, 871

DotGNU, 878

downloading .NET, 897899

drivers, devices, 886

dynamic objects

behaviors/principles, 716718

binding, 719720

CIL, 718719

customizing, 721724

programming, 714724

reflection, invoking, 714716

static compilation vs., 720721

EAP (Event-based Asynchronous Pattern), 924927

elements, runtime binding, 719720

enabling

contravariance, 485488

covariance, 483485

encapsulation

APIs, 859860

circumventing, 883

encryption, strings, 804

EndGetResponse() method, 908

EndX() method, 908

enums, TaskContinuation-Options, 754755

equality, structural, 516517

error handling, platform interoperability/unsafe code, 854856

events

handlers

adding, 846848

removing, 846848

notifications, multiple threads, 826827

resetting, 831837

WinRT, 846848

exceptions

AggregateException, 757764, 768

asynchronous Web requests, 779

parallel loop exception handling, 798800

handling

asynchronous high-latency operations, 775776

background worker patterns, 931932

InnerExceptions property, 760

NullReferenceException, 826

OperationCanceledException, 807

OutOfMemoryException, 433

reporting, 433

StackOverflowException, 433

System.ComponentModel.Win32Exception, 854

TaskCanceledException, 767, 768

unhandled, 761764

execution

agents, 881

delegates, unsafe code, 872873

loops, iterations in parallel, 794804

managed, 881

pseudocode, 814

VES, 895

expressions, lambda

asynchronous programming, 782783

lazy loading, 420

external functions

declaring, 849850

P/Invoke, calling, 858861

factory methods, 461

FCL (Framework Class Library), 892, 895

fields, declaring as volatile, 823824

files

metadata, 892893

references, assemblies, 889

finalizers, WaitHandle, 770

fixed statements, 867, 868

ForEach() method, 801

formatting single instance applications, 829830

forms, Windows Forms, 932934

FORTRAN, 890

Framework (Microsoft .NET), 878

frameworks, 877

FromCurrentSynchronizationContext() method, 788

functionality, CLI, 888n5

functions

external

declaring, 849850

P/Invoke, 858861

pointers, 862

garbage collection

.NET (Microsoft), 882883

runtime, 881882

gating parallelism, 802

general-purpose delegates, System.Func/System.Action, 514530

generics

arity, 460461

lazy loading, 420

GetDynamicMemberNames() method, 724

GetEnumerator() method, 787n8

GetResponse() method, 772

GetResponseAsync() method, 779

guest computers, 872

guidelines

covariance, 489

delegates, types, 515

locking, avoiding, 823

long-running tasks, 770

managed wrappers/unmanaged methods, 856

multiple type parameters, 460

multithreading, unhandled exceptions, 764

P/Invoke, 862

parallel loops, 797

parameters, 191, 192

synchronization, avoiding, 823

thread synchronization design, 829

Handle() method, 760

handlers, events

adding, 846848

removing, 846848

handling

errors, platform interoperability/unsafe code, 854856

exceptions

asynchronous high-latency operations, 775776

background worker patterns, 931932

parallel loops, 798800

high-latency operations, invoking, 771777

hill climbing, 798

hot tasks, 748

IAsyncAction<T> interface, 848, 849

IDisposable interface, tasks, 770

IDispose() method, 915

ILMerge utility, 889

immutable strings, modifying, 869870

implementing

CLI, 877878

dynamic objects, 714

in type parameter, 485488

Increment() method, 825

infrastructure, CLI, 875877

InnerExceptions property, 760

installing .NET, 897899

instances, formatting single, 829830

interfaces

automatically shimmed, 848

IAsyncAction<T>, 848, 849

IDisposable, 770

IReadOnlyPair<T>, 484

multithreading, prior to TPL and C# 5.0, 907936

PairInitializer<T>, 487

parameters, 192

Windows UIs, 790792, 932936

interoperability

CIL, 890

platforms, 845846, 862872

Invoke() method, 932

InvokeRequired property, 932

invoking

asynchronous

delegate invocation, 921924

tasks, 747748

high-latency operations, 771777

reflection, dynamic objects, 714716

IProducerConsumer-Collection<T> class, 835

IReadOnlyPair<T> interface, 484

IsCancellationRequested property, 766, 767, 801

IsCompleted property, 750, 804

iterations

long-running loops, 802

loops, 794804

jitting, 879

Join() method, 748

just-in-time compilation, 879

keywords, 5

async, 777781, 937942

await, 777781

lock

applying, 819821

selecting objects, 821822

string, avoiding locking, 822823

this, avoiding locking, 822823

typeof, 822823

lambda expressions

asynchronous programming, 782783

lazy loading, 420

languages

CIL, 876

CLR, 881

CLS, 891892

COBOL, 890

FORTRAN, 890

source, 890

late binding, 893

latency, invoking high-latency operations, 771777

libraries

BCL, 885, 892, 894

FCL, 892, 895

Task Parallel Library (TPL), 790

WinRT, 846849

LINQ queries, running in parallel, 584585, 804808

Linux, installing platforms, 898

listings

APM patterns

accessing user interfaces, 933934

asynchronous delegate invocation, 922923

background worker patterns, 928929

ContinueWith() method, 919

EAP, 926927

invoking user interface objects, 935936

invoking with callback/state, 911912

passing state, 913914

System.Net.WebRequest class, 908909

using TPL to call, 915918

delegates

applying variance, 516517

declaring Func/Action, 514515

dynamic objects

customizing, 721723

overriding members, 723724

runtime binding, 719720

generics

arity, 460

combining covariance and contravariance, 487

compiler validation of variance, 488

contravariance, 486

covariance, 483484

covariance using out type parameter modifier, 484

Create() method, 461

multiple type parameters, 460

methods

optional parameters, 189191

specifying parameters by names, 191192

multithreading

applying Task.Factory.StartNew() method, 769

asynchronous Web requests, 773774, 777778

await keyword, 787788

calling Task.ContinueWith method, 752, 789

cancelling parallel loops, 800801

cancelling PLINQ queries, 807808

cancelling tasks, 765766

customizing asynchronous methods, 784786

handling tasks, unhandled exceptions, 758759

invoking asynchronous tasks, 747748

iterating over await operations, 792793

lambda expressions, 782783

LINQ Select() method, 804

long-running tasks, 769770

for loops, 794795, 796

observing unhandled exceptions, 760761

parallel execution of foreachloops, 797

PLINQ Select() method, 805

PLINQ with query expressions, 806

polling Task<T> classes, 749

registering for notifications, 756

registering for unhandled exceptions, 762763

synchronous high-latency invocation with WPF, 791792

synchronous Web requests, 772773

unhandled exception handling, parallel iterations, 799

platform interoperability/unsafe code

accessing referent type members, 871872

allocating data on call stacks, 868

applying ref/out rather than pointers, 852

declaring external methods, 849850

declaring types, 853

designating unsafe code, 863, 872873

encapsulating APIs, 859860

fixed statements, 867, 868

invalid referent types, 866

managed resources, 857858

modifying immutable strings, 869870

SafeHandle, 856857

Win32 error handling, 854855

WinRT patterns, 847848

wrapping APIs, 861

reflection, dynamic programming using, 715

standard query operators, executing LINQ queries in parallel, 584

System.Threading.Timer class, 941942

System.Timers.Timer class, 939940

thread synchronization

creating single instance applications, 829830

firing event notifications, 826

lock keyword, 820

ManualResetEventSlim, 832833

Monitor class, 817818

System.Threading.Interlocked class, 824825

Task.Delay() method, 842

thread-safe event notification, 826

ThreadLocal<T> class, 838

ThreadStaticAttribute class, 839840

unsynchronized local variables, 815816

unsynchronized state, 813

Tic-Tac-Toe source code, 901905

timers, 939942

well-formed types, lazy loading properties, 420

local storage, threads, 837841

local variables, multiple threads, 815816

lock keyword

applying, 819821

objects, selecting, 821822

locking, 828829

avoiding, 822823

consoles, synchronization, 920921

lockTaken parameter, 819

long-running

loops, 802

tasks, 769770

loops

executing, iterations in parallel, 794804

parallel

breaking, 803804

executing iterations in, 794804

options, 802803

LowestBreakIteration property, 804

machine code, 876

compilation to CIL, 879880

Main() method, 821

managed code, 881

runtime performance, 885886

managed data, 881

managed execution, 881

manifests, CLI, 887890

mark-and-sweep-based algorithms, 882

members

dynamic objects, overriding, 723724

referent types, accessing, 871872

memory, allocating virtual, 851

metadata, 877

CLI, 892893

MethodImplAttribute, avoiding with synchronization, 823

methods

AllocExecutionBlock(), 855

APM, calling, 915921

AsParallel(), 584

asynchronous, customizing, 783786

BeginGetResponse(), 908

BeginX(), 908

binding, 714

Break(), 803

Cancel(), 766

change(), 942

ContinueWith(), 753, 775, 919920

Create(), 461

Decrement(), 814, 821, 825

DirectoryCountLines(), 191

Dispose(), 770

DoStuffAsync(), 787

EAP, 925

EndGetResponse(), 908

EndX(), 908

factory, 461

ForEach(), 801

FromCurrentSynchronizationContext(), 788

GetDynamicMemberNames(), 724

GetEnumerator(), 787n8

GetResponse(), 772

GetResponseAsync(), 779

Handle(), 760

IDispose(), 915

Increment(), 825

Invoke(), 932

Join(), 748

Main(), 821

Monitor.Enter(), 818

Monitor.Exit(), 818

Parallel.For(), 795, 803

parameters, optional, 189193

person.NonExistentMethodCallStillCompiles (), 717

PiCalculator.Calculate(), 749

Ping.Send(), 791

ProcessKill(), 785

Pulse(), 819

ReadToEnd(), 772

ReadToEndAsync(), 775

Reset(), 834

Run(), 748

Select(), 804

SendTaskAsync(), 792

StartX(), 908

Stop(), 803

Task.ContinueWith(), 793

Task.ContinueWith, calling, 752, 789

Task.Delay(), 843

Task.Factory(), 768

Task.Factory.StartNew(), 769

Task.Run(), 768, 785

ThrowIfCancellationRequested(), 768

TryGetMember(), 723

TrySetMember(), 723

Wait(), 750

WaitAll(), 831

WaitAny(), 831

WaitForExit(), 784

WebRequest.GetResponseAsync(), 774

WriteWebRequestSizeAsync(), 779

Microsoft

FCL, 892, 895

ILMerge utility, 889

.NET, 894, 897899

compilers, 878

garbage collection, 882883

platform portability, 885, 886

Silverlight, 878

XNA, 878

mind maps

CLI infrastructure, 875

platform interoperability/unsafe code, 845

thread synchronization, 811

models

asynchronous programming, 908921

COM, STAThreadAttribute class, 842843

modifiers

access, runtime, 883

volatile, declaring fields as, 823824

modifying immutable strings, 869870

modules, CLI, 887890

Monitor class, synchronization, 817819

Monitor.Enter() method, 818

Monitor.Exit() method, 818

Mono Project, 878, 898

multiple threads

event notification, 826827

local variables, 815816

multithreading

asynchronous tasks, 745764

interfaces, prior to TPL and C# 5.0, 907936

LINQ queries, running in parallel, 804808

loops, executing iterations in parallel, 794804

Task-based Asynchronous Pattern (TAP), 770794

tasks

AggregateException, 757764

canceling, 764770

continuation, 751757

named arguments, 191

namespaces, common, 159160

.NET (Microsoft), 894, 897899

compilers, 878

garbage collection, 882883

platform portability, 885, 886

notifications

events, multiple threads, 826827

registering for, 756

NullReferenceException, 826

objects

COM, STAThreadAttribute class, 842843

de-allocating, 882

deterministic destruction, 882

lock keyword, selecting, 821822

observer patterns, 846

OperationCanceledException, 807

operators, dot (.), 871

options

methods, parameters, 189193

parallel loops, 802803

TaskCreationOptions.LongRunning, 798

out type parameter, 483485

OutOfMemoryException, 433

overloading types, applying arity, 460

overriding members, dynamic objects, 723724

overrun, buffers, 883

P/Invoke (Platform Invoke), 849862

API calls with wrappers, 86186

external functions, calling, 858861

guidelines, 862

PairInitializer<T> interface, 487

Parallel.For() method, 795, 803

parallelism

disabling, 802

LINQ queries, running in, 804808

loops

breaking, 803804

executing iterations in, 794804

options, 802803

ParallelOptions parameter, 802

ParallelOptions type, 801

ParallelQuery<T> class, 806

parameters

data types, 850852

distribution, APM, 911

lockTaken, 819

methods, optional, 189193

ParallelOptions, 802

types

in, 485488

out, 483485

passing

CPS, 911913

state, APM, 913914

paths, configuring compilers, 898

patterns

APM, 908910

async/await, timers prior to, 937942

background worker, 928932

EAP, 924927

observer, 846

TAP, 770794, 920

token cancellation, 801

performance

runtime, 885886

synchronization, 828

Task Parallel Library (TPL), 798

person.NonExistentMethodCallStillCompiles () method, 717

pi, calculating, 794795

PiCalculator.Calculate() method, 749

Ping.Send() method, 791

platforms

addresses/pointers, 862872

installing, 897899

interoperability, 845846

.NET (Microsoft), 897899

portability, 884885

WPF, 934936

PLINQ (Parallel LINQ), 804808

pointers, 862872

assigning, 866869

declaring, 864866

dereferencing, 869871

functions, 862

polling

cancellation tasks, 766

Task<T> classes, 749

pools, threading, 746

portability of platforms, 884885

principles, dynamic objects, 716718

ProcessKill() method, 785

programming

asynchronous, 908921

dynamic, 714724

programs, Tic-Tac-Toe, 901905

properties

InnerExceptions, 760

InvokeRequired, 932

IsCancellationRequested, 766, 767, 801

IsCompleted, 750, 804

LowestBreakIteration, 804

pseudocode execution, 814

Pulse() method, 819

queries, running LINQ in parallel, 584585, 804808

ReadToEnd() method, 772

ReadToEndAsync() method, 775

reentrant deadlocks, 828

references

files, assemblies, 889

pointers, declaring, 864

referent types, accessing members, 871872

reflection, 883

dynamic objects, invoking, 714716

metadata, 893

registering

COM DLL, 890

for notifications, 756

remoting, 921

removing event handlers, 846848

reporting exceptions, 433

requests

asynchronous Web, 773774

cancellation, 768

synchronous Web, 772773

Reset() method, 834

resetting events, 831837

resources, cleanup (APM), 914

rethrowing exceptions, 433

Rotor, 878

Run() method, 748

running LINQ queries in parallel, 584585, 804808

runtime

CIL, 881886

CLR, 894

garbage collection, 881882

performance, 885886

WinRT, 895

XML elements, binding, 719720

SafeHandle class, 856857

safety, types, 883

schedulers, tasks, 746, 788790

security, code access, 884

Select() method, 804

selecting objects, lock keyword, 821822

Semaphore class, 835

semaphores, System.Threading.AutoResetEvent class, 834

SemaphoreSlim class, 835

SendTaskAsync() method, 792

ServiceStatus, 865

signatures, APM, 910911

Silverlight (Microsoft), 878

single instance applications, formatting, 829830

Smalltalk, 890

software, virtual, 872

source code, Tic-Tac-Toe, 901905

source languages, 890

spaces, dirty, 882

stackalloc data, 868

StackOverflowException, 433

stacks, calling, 868

standard query operators, running LINQ queries in parallel, 584585

star (*), 756

StartX() method, 908

state, passing (APM), 913914

statements

Console.WriteLine(), 871

fixed, 867, 868

string.join, 796

STAThreadAttribute class, 842843

static compilation vs. dynamic programming, 720721

Stop() method, 803

storing local threads, 837841

string keyword, avoiding locking, 822823

string.join statement, 796

strings

encryption, 804

immutable, 869870

StructLayoutAttribute, 853

structural equality, delegates, 516517

styles, CPS, 911913

support, covariance, 488489

switches, unsafe, 864

synchronization

consoles, 920921

context, 788790

delegates, 747

Monitor class, 817819

operations, invoking high-latency, 771772

threading, 811812

applying lock keywords, 819821

avoiding locking, 822823

avoiding with MethodImplAttribute, 823

declaring fields as volatile, 823824

design best practices, 827829

event notification, 826827

local storage, 837841

overview of, 813841

resetting events, 831837

selecting lock objects, 821822

System.Threading.Interlocked class, 824826

timers, 841843

types, 829837

System.Action delegate, 514530

System.AsyncCallback class, 911913

System.ComponentModel.Win32Exception method, 854

System.Exception class, 433

System.Func delegate, 514530

System.Lazy<T> class, 420

System.Net.WebRequest class, 908

System.Threading class, 812

System.Threading.AutoResetEvent class, semaphores, 834

System.Threading.Interlocked class, 824826

System.Threading.ManualResetEvent class, 831834

System.Threading.ManualResetEventSlim class, 831834

System.Threading.Mutex class, 829830

System.Threading.WaitHandle class, 831

System.Timer class, 937942

T type parameter, 461

tables

acronyms, 894895

common namespaces, 159160

compilers, 878

concurrent collection classes, 836837

control flow within tasks, 780

keywords, 5

ManualResetEvent synchronization, 833

sample pseudocode execution, 814

System.Threading.Interlocked class, 825

TaskContinuationOptions enums, 754755

TAP (Task-based Asynchronous Pattern)

APM methods, 920

multithreading, 770794

task-based asynchrony, 848849

TaskCanceledException, 767, 768

TaskCompletionSource<T> class, 784

TaskContinuationOptions enums, 754755

Task.ContinueWith() method, 752, 789, 793

TaskCreationOptions.LongRunning option, 798

Task.Delay() method, 843

Task.Factory() method, 768

Task.Factory.StartNew() method, 769

Task.Run() method, 768, 785

tasks

AggregateException, 757764

antecedent, 753

asynchronous, 745764

canceling, 764770

continuation, 751757, 789

control flow, 780

IDisposable interface, 770

long-running, 769770

schedulers, 746, 788790

TaskScheduler class, 788

Task<T> class, 779

await keyword, 787788

polling, 749

this keyword, avoiding locking, 822823

thread-safe, 815

event notification, 826

threading

multiple threads, local variables, 815816

pools, 746

synchronization, 811812

applying lock keywords, 819821

avoiding locking, 822823

avoiding with MethodImplAttribute, 823

declaring fields as volatile, 823824

design best practices, 827829

event notification, 826827

local storage, 837841

Monitor class, 817819

overview of, 813841

resetting events, 831837

selecting lock objects, 821822

System.Threading.Interlocked class, 824826

timers, 841843

types, 829837

unhandled exceptions, 761764

ThreadLocal<T> class, 838

ThreadStaticAttribute class, 839

ThrowIfCancellationRequested() method, 768

Tic-Tac-Toe source code, 901905

timers

prior to async/await patterns, 937942

threading, 841843

token cancellation, 801

TPL (Task Parallel Library), 790

interfaces, multithreading prior to C# 5.0, 907936

performance, 798

TryGetMember() method, 723

TrySetMember() method, 723

Tuple class, 461

typeof keyword, avoiding locking, 822823

types

checking, 883

CTS, 891

data, parameters, 850852

metadata, 892893

overloading, applying arity, 460

ParallelOptions, 801

parameters

in, 485488

out, 483485

referent, accessing members, 871872

safety, 883

thread synchronization, 829837

unmanaged, 864

UIs (user interfaces), Windows, 790792, 932936

unhandled exceptions, threading, 761764

unmanaged types, 864

unsafe blocks, 863, 864

unsafe code, 845846, 863864, 867

delegates, executing via, 872873

unsafe covariance in arrays, support, 488489

utilities, ILMerge, 889

variables, local, 815816

versioning assemblies, 889

VES (Virtual Execution System), 876, 877, 881, 895

virtual memory, 851

virtual software, 872

VirtualAllocEx API, 850852

volatile modifier, declaring fields as, 823824

vulnerabilities, buffer overruns, 883

Wait() method, 750

WaitAll() method, 831

WaitAny() method, 831

WaitForExit() method, 784

WaitHandle finalizer, 770

WebRequest.GetResponseAsync() method, 774

Win32, error handling, 854855

Windows

Forms, 932934

UIs (user interfaces), 790792, 932936

WinRT (Windows Runtime), 845, 895

libraries, 846849

work stealing, 798

WPF (Windows Presentation Foundation), 934936

wrappers, APIs (P/Invoke), 86186

WriteWebRequestSizeAsync() method, 779

xcopy deployment, 889

XML (Extensible Markup Language) elements, runtime binding, 719720

XNA (Microsoft), 878

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.222.114.132